大家帮我看个关于数组的算法好吗?

来源:百度知道 编辑:UC知道 时间:2024/06/05 08:26:36
规定学生成绩在90分以上为1级,80-89分为2级,70-79分为3级,60-69分为4级,60分以下为5级。输入学生的学号和成绩,输出学生的学号和成绩的级别,并统计各等级学生人数。
下面是我编的,错了很多,帮我看看。
#include <iostream>
#include <cmath>
using namespace std;

int main(void)
{int M,N;
int i,j;
cout<<"请输入学生人数:";
cin>>M;
N=3;
int score[M][N];
int a,b,c,d,e;
a=b=c=d=e=0;
for(j=0;j<M;j++)
{cout<<"输入第"<<i+1<<"名学生的学号和成绩:";
cin>>score[1][j]>>score[2][j];
if(score[2][j]>=90) score[3][j]=1,a=a+1;
else if(score[2][j]>=80) score[3][j]=2,b=b+1;
else if(score[2][j]>=70) score[3][j]=3,c=c+1;
else if(score[2][j]>=60) score[3][j]=4,d=d+1;
else score[3][j]=5,e=e+1;
}
cout<<"学号"<<score[1][j]<<endl;
cout<<"成绩"<<score[2][j]<<endl;
cout<<"等级"<<score[3

数组维数不能是变量
参考另一帖子

数组必须要有一个确定的值,也就是说,M是用户输入的,即不确定的值,这是不允许用来初始化数组的。其实你可以把 score 写成 score[100][3] 即把M弄成一个绝对大的数(一般估计用于输入的M也会小于100,如果怕可以弄成1000 甚至10000)。 其他的基本上不用变

当然这种方法不是很好,会开辟一些无用的空间出来。以后的话最好用链表之类的会更合理~~

希望有所帮助

除以10,用switch语句简单明了

不急 初学者,等以后接触多了,再谈优化的问题