带详细注释。注意!!!输入的是数字字符,统计每场比赛的最大解题数和比较时都要-'0',AC代码如下:
#include<iostream>
using namespace std;
char a[110][110];
int maxx[110];
int main()
{
int n,m,cnt=0;
cin>>n>>m;
for(int i=0; i<n; i++)
for(int j=0; j<m; j++)
cin>>a[i][j];
for(int j=0; j<m; j++) // 纵向遍历数组,统计每场比赛最大值
{
for(int i=0; i<n; i++)
{
if(a[i][j]-'0'>maxx[j])
{
maxx[j]=a[i][j]-'0';
}
}
}
// for(int i=0; i<m; i++) cout<<maxx[i]<<" "; // 9 1 8 2 8
for(int i=0; i<n; i++) // 遍历每一个队伍
{
for(int j=0; j<m; j++) // 第i个队伍的每一场
{
if((a[i][j]-'0')==maxx[j]) // 当前场的解题数量等于当场最大解题数
{
cnt++;
break; // 拿过第一名了就跳出统计下一个队伍
}
}
}
cout<<cnt;
return 0;
}