AC代码:
/*《C语言程序设计》江宝钏主编-习题7-2-5科总分
Description
输入10个学生的学号和5门课程的成绩,统计输出5门课总分最高和最低的学生的学号和他们的总分。
Input
每行6个整数,共10行。
其中,每行第一个整数表示学生的学号,剩下的5个数表示他5门课程的成绩。
Output
两行,每行两个整数。
其中第一行为总分最高的学生的学号,和他的总分,用空格隔开。
第二行为总分最低的学生的学号,和他的总分,用空格隔开。
Sample Input Copy
99211201 1 2 3 4 5
99211207 2 2 3 4 5
99211217 3 2 3 4 5
99211227 4 2 3 4 5
99211231 5 2 3 4 5
99211232 6 2 3 4 5
99211233 7 2 3 4 5
99211235 8 2 3 4 5
99211236 9 2 3 4 5
99211237 10 2 3 4 5
Sample Output Copy
99211237 24
99211201 15
*/
#include<stdio.h>
int main()
{
int i,j,max,x,min,t,sum;
int a[10][6],b[10];
for(i=0;i<10;i++){
for(j=0;j<6;j++){
scanf("%d",&a[i][j]);
}
}
for(i=0;i<10;i++){
sum=0;
for(j=1;j<6;j++){
sum+=a[i][j];
}
b[i]=sum; //每次求和必须要及时赋值到数组b中,若没有这句,sum最后求的是所有成绩的总和
}
max=b[0];
x=0;
min=b[0];
t=0;
for(i=0;i<10;i++){
if(max<b[i]){
max=b[i];
x=i;
}
if(min>b[i]){
min=b[i];
t=i;
}
}
printf("%d %d\n%d %d",a[x][0],max,a[t][0],min);
return 0;
}
/*该标程有一小点问题,待寻解决方法!
#include <stdio.h>
int main(){
int a[10][6],b[10],i,j,sum=0,max[2],min[2];
for(i=0;i<10;i++){
for(j=0;j<6;j++){
scanf("%d",&a[i][j]);
}
}
for(i=0;i<10;i++){
for(j=1;j<6;j++){
sum+=a[i][j]; //每次循环完必须用一个数组保存每次的sum值?
}
b[i]=sum;
if(sum>max[1]){
max[0]=a[i][0];
max[1]=sum;
}
if(sum<min[1]){
min[0]=a[i][0];
min[1]=sum;
}
}
printf("%d %d\n%d %d",max[0],max[1],min[0],min[1]);
return 0;
}
*/