求大神帮我的程序改正错误,并接着完成这个题(我是初学者,求用我能懂的办法)题如下:“一个小组五位同学,选修了相同的4门功课.请输入每位同学的成绩,计算每位同学的总分,找出总分最
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/27 11:56:51
![求大神帮我的程序改正错误,并接着完成这个题(我是初学者,求用我能懂的办法)题如下:“一个小组五位同学,选修了相同的4门功课.请输入每位同学的成绩,计算每位同学的总分,找出总分最](/uploads/image/z/11203096-40-6.jpg?t=%E6%B1%82%E5%A4%A7%E7%A5%9E%E5%B8%AE%E6%88%91%E7%9A%84%E7%A8%8B%E5%BA%8F%E6%94%B9%E6%AD%A3%E9%94%99%E8%AF%AF%2C%E5%B9%B6%E6%8E%A5%E7%9D%80%E5%AE%8C%E6%88%90%E8%BF%99%E4%B8%AA%E9%A2%98%EF%BC%88%E6%88%91%E6%98%AF%E5%88%9D%E5%AD%A6%E8%80%85%2C%E6%B1%82%E7%94%A8%E6%88%91%E8%83%BD%E6%87%82%E7%9A%84%E5%8A%9E%E6%B3%95%EF%BC%89%E9%A2%98%E5%A6%82%E4%B8%8B%EF%BC%9A%E2%80%9C%E4%B8%80%E4%B8%AA%E5%B0%8F%E7%BB%84%E4%BA%94%E4%BD%8D%E5%90%8C%E5%AD%A6%2C%E9%80%89%E4%BF%AE%E4%BA%86%E7%9B%B8%E5%90%8C%E7%9A%844%E9%97%A8%E5%8A%9F%E8%AF%BE.%E8%AF%B7%E8%BE%93%E5%85%A5%E6%AF%8F%E4%BD%8D%E5%90%8C%E5%AD%A6%E7%9A%84%E6%88%90%E7%BB%A9%2C%E8%AE%A1%E7%AE%97%E6%AF%8F%E4%BD%8D%E5%90%8C%E5%AD%A6%E7%9A%84%E6%80%BB%E5%88%86%2C%E6%89%BE%E5%87%BA%E6%80%BB%E5%88%86%E6%9C%80)
求大神帮我的程序改正错误,并接着完成这个题(我是初学者,求用我能懂的办法)题如下:“一个小组五位同学,选修了相同的4门功课.请输入每位同学的成绩,计算每位同学的总分,找出总分最
求大神帮我的程序改正错误,并接着完成这个题(我是初学者,求用我能懂的办法)
题如下:“一个小组五位同学,选修了相同的4门功课.请输入每位同学的成绩,计算每位同学的总分,找出总分最高的同学是第几号同学,最后按总分对二维数组排序,并输出排序后的每位学生信息.”
我根据问题自己编了一下,发现引用a【i】【0】的时候出了问题,要怎么改啊?接下来怎么编啊?
#include
void main()
{
\x05int i,j,s=0,max,a[5][6]={{1001},{1002},{1003},{1004},{1005}};
\x05for(i=0;i
求大神帮我的程序改正错误,并接着完成这个题(我是初学者,求用我能懂的办法)题如下:“一个小组五位同学,选修了相同的4门功课.请输入每位同学的成绩,计算每位同学的总分,找出总分最
【程序】用索引排序,这样就不用交换学生的6个数据了.
#define N 5
void main()
{ int i,j,s,index[N]; //index存放索引,内容是学生存储序号(a数组第1下标值)顺序表示排序顺序
float a[N][6],max; //学号,成绩1,成绩2,成绩3,成绩4,总分
for ( i=0;i<N;i++ )
{ index[i]=i; a[i][0]=1001+i;
printf("请连续输入学号为%d同学的4门成绩(以空格间隔):",(int)a[i][0]);
scanf("%f %f %f %f",&a[i][1],&a[i][2],&a[i][3],&a[i][4]);
}
for ( i=0;i<N;i++ ) { a[i][5]=0; for ( j=0;j<4;j++ ) a[i][5]+=a[i][j+1]; }
max=0; s=0; for ( i=0;i<N;i++ ) if ( max<a[i][5] ) { max=a[i][5]; s=i; }
printf("总分最高的同学的学号是:%d\n",(int)a[s][0]);
for ( i=0;i<N-1;i++ ) //根据总分,将索引排序,索引顺序(下标0~N)将是总分从大到小顺序
for ( j=i+1;j<N;j++ )
if ( a[index[i]][5]<a[index[j]][5] )
{ s=index[i]; index[i]=index[j]; index[j]=s;
}
printf("按总分从高到低顺序的成绩单:\n");
printf("学号\t语文\t数学\t英语\t科学\t总分\n");
for ( i=0;i<N;i++,printf("\n") )
{ printf("%d\t",(int)a[index[i]][0]);
for ( j=1;j<6;j++ ) printf("%.1f\t",a[index[i]][j]);
}
}
【运行结果】