15-01-求矩阵对角线元素之和
输入格式
第一行包含整数N,表示数组行数和列数。
接下来N行,每行包含N个整数X。
输出格式
输出矩阵对角线元素之和。
数据范围
1≤N≤1000
1≤X≤10000000
输入样例
3
1 2 3
4 5 6
7 8 9
输出样例
30
易错点:
1. 对角线元素包括主对角线和副角线,很容易把副对角线漏了
#include <bits/stdc++.h>
using namespace std;
const int N = 1010;
int a[N][N];
int main(){
int n=0;
int res = 0;
cin >> n;
for(int i = 0 ; i < n; i++){
for(int j = 0; j < n ; j++){
cin >> a[i][j];
if(i==j || (i+j+1==n)) res += a[i][j];
}
}
cout <<"result is : "<< res << endl;
return 0;
}
15-02-统计字符个数
输入一个字符串,分别统计该字符串中出现的数字字符个数,字母字符个数和其他类型字符个数。
输入格式
输入一行,表示一个字符串。注意字符串中可能包含空格。
输出格式
输出一行,共三个整数,分别表示字符串中出现的数字字符个数,字母字符个数和其他类型字符个数,用空格隔开。
数据范围
1≤字符串长度≤1000
输入样例
I love XJTU! 123
输出样例
3 9 4
易错点、知识点:
1. 数字、字母表示辨别方式
2. 学会用getline(cin,s)从标准输入读取字符串
3. 数字也是需要用引号的
4. 空格也算字符
#include <bits/stdc++.h>
using namespace std;
string s;
int main(){
getline(cin,s);
int digit = 0 , letter = 0 , other = 0;
for(char c : s){
if( (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')) letter++;
else if(c >= '1' && c <= '9') digit++;
else other++;
}
cout << digit << ' ' << letter << ' '<< other;
return 0;
}