定义一个二维数组存储5位学生4科考试的成绩(整数),编写程序分别取出二维数组里的元素值,

经过累加之后列出总成绩,计算并输出每个同学的平均成绩和平均成绩最高的学生学号和成绩
【算法提示】(1)声明一个5行7列的浮点型数组a[5][7](其中第1列为学号,2,3,4,5为成绩,第6列用来保存各学生的总分,第7列用来保存各学生的平均成绩);
(2) 用赋初值的办法给数组的前5列赋值,
(3) 计算总分与平均分分别保存到第6列与第7列;
(4) 输出整个数组;
(5) 输出平均成绩最高的学生学号和成绩
(想要的是在程序内已经输入了成绩的方式)

第1个回答  2014-04-07
int a[5][7];
printf("please input ID number and grades\n");
int i=0;int j=0;//两个循环量
float temp=0;//存放输入量
float sum=0;//计算一行的分数和
int maxsum=0;int maxID=0;//存下最大分数及相应学好
for(i=0;i<=4;i++)
for(j=0;j<=4;j++)
{ scanf("%d ",&temp);/
a[i][j]=temp;//对相应矩阵赋值
sum+=temp;//
if(j==0)sum=0;//输入若为学号 ,则将SUM值清零
if(j==4)a[i][j+1]=sum;//如果分数已经输入完毕,则将和放入A[i][5]中
a[i][j+2]=sum/4;//算下平均值放入A[I][6]
if(sum>maxsum)//若本次和值最大,则记录对应学号和分数
{maxsum=sum;maxID=a[i][0];}
}
for(i=0;i<=4;i++)
for(j=0;j<=6;j++)
{
printf("%d ",a[i][j]);

if(j==6)printf("\n");
}
printf("The max grade is %d,and num is %d",maxsum,maxID);
相似回答