#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