C语言问题,二维数组

创建一个而为数组stu_score[15][7],初始化输入10个学生2门成绩。要求:计算每个学生三门课总成绩,放入stu_score[][4]中;计算每个学生三门课的平均值放入stu_score[][5]中;计算每个学生三门课不及格数目,放入stu_score[][6]中;计算每门课的最高分,放入stu_score[11][1],stu_score[11][2],stu_score[11][3]中;计算每门课最低分,放入stu_score[12][1],stu_score[12][2],stu_score[12][3]中;计算每门课平均值,放入stu_score[13][1],stu_score[13][2],tu_score[13][3]中;

/*
创建一个而为数组stu_score[15][7],初始化输入10个学生3门成绩。
要求:
1、计算每个学生三门课总成绩,放入stu_score[][4]中;
2、计算每个学生三门课的平均值放入stu_score[][5]中;
3、计算每个学生三门课不及格数目,放入stu_score[][6]中;
4、计算每门课的最高分,放入stu_score[11][1],stu_score[11][2],stu_score[11][3]中;
5、计算每门课最低分,放入stu_score[12][1],stu_score[12][2],stu_score[12][3]中;
6、计算每门课平均值,放入stu_score[13][1],stu_score[13][2],stu_score[13][3]中
*/
#include<stdio.h>

float stu_score[15][7];

void main()
{
int i,j,k;
float max=0.0,min=0.0;

for(i=0;i<15;i++)
for(j=0;j<7;j++)
stu_score[i][j]=0.0;

printf("输入10个学生3门成绩:\n");
for(i=0;i<10;i++)
{
k=0;
printf("%d:",i+1);
for(j=0;j<3;j++)
{
scanf("%f",&stu_score[i][j]);
stu_score[i][4]+=stu_score[i][j];
stu_score[13][j+1]+=stu_score[i][j];
}
stu_score[i][5]=stu_score[i][4]/3.0;
for(j=0;j<3;j++)
if(stu_score[i][j]<60)k++;
stu_score[i][6]=k;//每个学生三门课不及格数目,放入stu_score[][6]中
}
for(j=0;j<3;j++)stu_score[13][j+1]=stu_score[13][j+1]/10;//每门课的平均分

for(j=0;j<3;j++)
{
for(i=0,max=min=stu_score[i][j];i<10;i++)
{
if(max<stu_score[i][j])max=stu_score[i][j];
if(min>stu_score[i][j])min=stu_score[i][j];
}
stu_score[11][j+1]=max;//每门课的最高分,放入stu_score[11][1],stu_score[11][2],stu_score[11][3]中
stu_score[12][j+1]=min;//每门课的最低分,放入stu_score[12][1],stu_score[12][2],stu_score[12][3]中
}

printf("每个学生三门课总成绩:\n");
for(i=0;i<10;i++)
printf("%.2f\n",stu_score[i][4]);
printf("\n");

printf("每个学生三门课平均值成绩:\n");
for(i=0;i<10;i++)
printf("%.2f\n",stu_score[i][5]);
printf("\n");

printf("每个学生三门课不及格数目:\n");
for(i=0;i<10;i++)
printf("%d\n",int(stu_score[i][6]));
printf("\n");

printf("每门课程的最高分和最低分:\n");
for(i=0;i<3;i++)
{
printf("第%d门课程最高分:%.2f,最低分:%.2f\n",i+1,stu_score[11][i+1],stu_score[12][i+1]);
}

printf("每门课程的平均值:\n");
for(i=0;i<3;i++)
{
printf("第%d门课程平均值:%.2f\n",i+1,stu_score[13][i+1]);
}
}

运行结果:
输入10个学生3门成绩:
1:85 96 75
2:75 84 72
3:41 85 76
4:75 84 71
5:96 85 72
6:74 81 42
7:85 74 63
8:75 84 72
9:95 84 71
10:75 82 53
每个学生三门课总成绩:
256.00
231.00
202.00
230.00
253.00
197.00
222.00
231.00
250.00
210.00

每个学生三门课平均值成绩:
85.33
77.00
67.33
76.67
84.33
65.67
74.00
77.00
83.33
70.00

每个学生三门课不及格数目:
0
0
1
0
0
1
0
0
0
1

每门课程的最高分和最低分:
第1门课程最高分:96.00,最低分:41.00
第2门课程最高分:96.00,最低分:74.00
第3门课程最高分:76.00,最低分:42.00
每门课程的平均值:
第1门课程平均值:77.60
第2门课程平均值:83.90
第3门课程平均值:66.70
Press any key to continue
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-06-11
Int stu_score[15][7];
int i;j,n,max[3]={0},min[3]={100,100,100},mun[3]={0};
//初始化略stu_score[i][0]stu_score[i][1]stu_score[i][2]分别存储三科成绩
for(i=0;i<m;i++)
{
n=0;
for(j=0;j<3;j++)
{
stu_score[i][4]=stu_score[i][4]+stu_score[i][j];
stu_score[i][5]=stu_score[i][4]/3;
if(stu_score[i][j]<60)n++;
if(stu_score[i][j]>max[j])max=stu_score[i][j];
if(stu_score[i][j]<min[j])min=stu_score[i][j];
}
stu_score[i][6]=n;
mun[0]=stu_score[i][0]+mun[0];
mun[1]=stu_score[i][1]+mun[1];
mun[2]=stu_score[i][6]+num[2];
}
stu_score[11][1]=max[0];
stu_score[11][2]=max[1];
stu_score[11][3]=max[2];
stu_score[12][1]=min[0];
stu_score[12][2]=min[1];
stu_score[12][3]=min[2];
stu_score[13][1]=mun[0]/m;
stu_score[13][2]=mun[1]/m;
stu_score[13][3]=mun[2]/m;
//m为所统计的学生个数
相似回答