一个学习小组有5个人,每个人有三门课的考试成绩。求小组分科的平均成绩和各同学平均成绩;同时将各位同学的平均成绩按照从高到低的顺序排名后输出其姓名、平均成绩以及排序号。
张 王 李 赵 周
Math 80 61 59 85 76
C 75 65 63 87 77
Eng 92 71 70 90 85
一定要用二维数组来,因为我们刚学到二维数组,函数什么的不要用
貌似结果不对呀,还有排序号那个你没做出来。。姓名这个也没输出
追答#include
#include
main()
{ int data[4][6]={{80,61,59,85,76,0},{75,65,63,87,77,0},{92,70,71,90,85,0},{0,0,0,0,0,0}};
char name[5][10]={"zhang","wang","li","zhao","zhou"}, t[10];
int i,j,k,d,temp,kk;
for(i=0;i<3;i++)
{ for(j=0;j<5;j++)
{ data[i][5]+=data[i][j]; /*在第3行和第5列中求每位学生和*/
data[3][j]+=data[i][j]; } /*每门课程的成绩总和*/
}
for(k=0;k<3;k++)
data[k][5]=data[k][5]/5; /*在第5列中计算每门课程平均分*/
for(k=0;k<5;k++)
data[3][k]=data[3][k]/3; /*在第3列中计算每位学生的平均分 */
printf("\n\n");
for(i=0;i<5;i++)
printf("%8s ",name[i]);
printf("\n");
for(i=0;i<4;i++)
{ for(j=0;j<6;j++)
printf("%8d ",data[i][j]); /*输出统计结果*/
printf("\n");
}
/*Sort*/
for(i=0;i<4;i++)
{ d=data[3][i]; k=i; /* 按列排序 */
for(j=i+1;j<5;j++)
if(d<data[3][j]){ d=data[3][j]; k=j; }
for(j=0;j<4;j++)
{ temp=data[j][k]; data[j][k]=data[j][i]; data[j][i]=temp; }
strcpy(t,name[i]); strcpy(name[i],name[k]); strcpy(name[k],t);
}
printf("平均成绩计算结果:\n");
for(i=0;i<5;i++)
printf("%8s ",name[i]);
printf("\n");
for(i=0;i<4;i++)
{ for(j=0;j<6;j++)
printf("%8d ",data[i][j]); /*/输出统计结果*/
printf("\n");
}
getch();
}