《C语言程序设计》江宝钏主编-习题7-2-5科总分!!!!!

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;
}
*/
发布了39 篇原创文章 · 获赞 7 · 访问量 3672

猜你喜欢

转载自blog.csdn.net/qq_45599068/article/details/104157897