#Z0407. [伴随编程]二维数组按要求输出
[伴随编程]二维数组按要求输出
利用自定义的函数来统计一个字符类型的二维数组中,有多少个大写字母。
输入格式:
输入共有 n+1 行:
第一行有两个整数 n,m,分别表示二维数组的行、列数(0<n≤100,0<m≤100)
之后 n 行每行有 m 个由空格分隔的字符。
输出格式
输出二维数组中大写字母的个数。
#include <iostream>
using namespace std;
int main() {
return 0;
}
首先,我们定义两个整型变量 row 和 col,分别代表二维数组的行列数,并将它们读入。
int row,col;
cin>>row>>col;
接下来,我们定义一个字符类型的二维数组 matrix,它的行列数分别为 row 和 col,并将它初始化。请接着写:
char matrix[row][col];
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
cin >> matrix[i][j];
}
}
现在已经完成一个行列数分别为 row 和 col 的二维数组,并且完成了读入。
我们要统计这个二维字符数组中有多少个大写字母,那么我们先定义一个判断大写字母的函数吧。
bool isUpper(char ch) {
if (ch >= 'A' && ch <= 'Z') {
return true;
} else {
return false;
}
}
接下来我们定义一个整型变量 cnt 用来记录这个二维数组中包含多少个大写字母,并将它初始化为 0,请在 cin >> row >> col; 下一行写:
int cnt = 0;
接下来,我们在内层 for 循环中读入二维数组元素语句的下一行,调用 isUpper 函数,参数为刚刚读入的二维数组元素,并将返回值累加到 cnt 上。
请在合适的位置写:
cnt += isUpper(matrix[i][j]);
最后,我们将变量 cnt 的输出出来,请在 return 0; 上一行写:
cout << cnt << endl;
现在点击 运行,输入两个正整数 row 和 col,再输入 row∗col 个字符,看看程序统计出的大写字母的个数符合你的预期吗?
4 9
1 J = F j < i a *
H V H K 8 A R ( >
J < @ \ ( D B 6 (
- 6 i Z ( a ( > P
13