牛村新开了一个系列赛,一个系列赛有m场比赛,比赛规则是解题数越多排名越前,如果前几名队伍解题数一样则会并列第一。
有n个神仙队伍完整参加了m场比赛,请问有几个队伍拿过第一名。
第一行输入两个整数n,m,表示队伍数量与m场比赛。
接下来n行输入一个数字矩阵,每行m个数字字符表示每场比赛的解题数量
1<=n,m<=100
定义一个字符数组储存,用int类型后面会出现运行错误
#include<bits/stdc++.h>
using namespace std;int main()
{
char a[110][110];
int max[110];
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'>max[j])
{
max[j]=a[i][j]-'0';
} //大于max进行替换
}
}
// for(int i=0; i<m; i++) cout<<max[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')==max[j]) // 当前场的解题数量等于当场最大解题数
{
cnt++;
break; // 拿过第一名了就跳出统计下一个队伍
}
}
}
cout<<cnt;
return 0;
}
全部评论
(0) 回帖