一个c语言题

【问题描述】一个小组五位同学,选修了相同的4门功课。请输入5位同学各4门的成绩,计算每位同学的总分。然后按总分对二维数组排序,并输出排序后的每位学生信息。5位同学的学号信... 【问题描述】
一个小组五位同学,选修了相同的4门功课。请输入5位同学各4门的成绩,计算每位同学的总分。
然后按总分对二维数组排序,并输出排序后的每位学生信息。
5位同学的学号信息如下表:
学号 S1 S2 S3 S4 total
1001
1002
1003
1004
1005

【实验提示】
定义的二维数组需要保存学号与总分信息。建议定义5列6列的二维数组,第0列存储学号。第5列存储总分。学号以初始化方式录入数组第0列。
注意,排序交换数据时需要一整行都交换。
【输入形式】
按行输入5位学生的4个成绩数据
【输出形式】
以二维表格形式输出5位学生的学号、4门成绩、总分,一行输出一名学生信息
【样例输入】
Input 1001 4 score:1 2 3 4
Input 1002 4 score:55 65 75 85
Input 1003 4 score:33 44 55 66
Input 1004 4 score:10 20 30 40
Input 1005 4 score:81 85 91 95

【样例说明】
下划线上是输入的数据,前面是输入前的提示信息。
首先输出初始数据,再输出按总分降序排序后的数据。
每个数据输出都占5列,右对齐。
两次输入之间插入输出分隔 ========sort========(左右各8个=)
展开
 我来答
White_MouseYBZ
2019-04-20 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6102万
展开全部
#include "stdio.h"
void toshow(int (*s)[6]){
int i,j;
printf("  ID     S1    S2    S3    S4   TOTAL\n");
printf("--------------------------------------\n");
for(i=0;i<5;i++){
for(j=0;j<6;printf(" %4d ",s[i][j++]));
printf("\n");
}
}
int main(int argc,char *argv[]){
int s[5][6]={{1001},{1002},{1003},{1004},{1005}},i,j,k,t;
for(i=0;i<5;i++){
printf("Input %d 4 score: ",s[i][0]);
for(j=1;j<5;scanf("%d",s[i]+j++));
s[i][5]=s[i][1]+s[i][2]+s[i][3]+s[i][4];
}
toshow(s);
for(i=0;i<5;i++){
for(k=i,j=k+1;j<5;j++)
if(s[k][5]<s[j][5])
k=j;
if(k-i)
for(j=0;j<6;j++)
t=s[k][j],s[k][j]=s[i][j],s[i][j]=t;
}
printf("========sort========\n");
toshow(s);
printf("\n");
return 0;
}

匿名用户
2020-04-18
展开全部


已赞过 已踩过<
你对这个回答的评价是?
评论 收起
包开习凌雪
2019-04-25 · TA获得超过4008个赞
知道大有可为答主
回答量:3153
采纳率:25%
帮助的人:166万
展开全部
程序在编译过程中,会为变量等分配内存空间,比如m。m对应的内存空间是存在一些未定义的二进制流,具体是什么我们不得而知。这些不确定二进制流转为为10进制就是一些不确定的数
这个数值具体是多少是没有任何意义的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式