数组-好学生?

BM.  数组-好学生
Problem ID: 3290
Contest ID: 5697
必做题
时间:0.2s   空间:32M
题目描述:
告诉你每个学生在每门功课上的成绩,现在定义好学生为:至少在某一门功课上是所有学生中最优秀的。
问,有多少个好学生
输入格式:
第一行输入两个整数n,m,表示学生的数量与功课的数量
接下来n行输入一个数字矩阵,每行m个数字字符。
输出格式:
输出一个整数
样例输入:
3 5
91728
11828
11111
样例输出:
3
约定:
1<=n,m<=100
提示:
#include<bits/stdc++.h>
using namespace std;
string a[105];
int n,m,z,maxa,sum;
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	for(int i=1;i<=m;i++)
	{
		maxa=0;
		for(int j=1;i<=n;j++)
		{
			z=a[i][j];
			if(z>maxa) maxa=z;
		}
	}
	for(int i=1;i<=m;i++)
	{
		for(int j=1;i<=n;j++)
		{
			z=a[i][j];
			if(z==maxa) {
				sum+=1;
			}
		}
	}
	cout<<sum;
	return 0;
}
for(int i=1;i<=m;i++)
	{
		maxa=0;
		for(int j=1;i<=n;j++)
		{
			z=a[i][j];
			if(z>maxa) maxa=z;
		}
	}

m,n写反了

1 个赞

并且maxa你这里写的有问题,得用数组记录

1 个赞

像这样

for(int i = 0; i < n; i++)
	{
		cin >> s[i];
		for(int j = 0; j < m; j++)
		{
			if(col[j] < s[i][j] - '0')
			{
				col[j] = s[i][j] - '0';
			}
		}	
	}	

还有j是从0开始的。

1 个赞