1102: C语言程序设计教程(第三版)课后习题11.5

问题

题目描述
有N个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入N个学生的数据,要求打印出3门课的总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩)
输入
学生数量N占一行每个学生的学号、姓名、三科成绩占一行,空格分开。
输出
各门课的平均成绩 最高分的学生的数据(包括学号、姓名、3门课成绩)
样例输入
2
1 blue 90 80 70
b clan 80 70 60
样例输出
85 75 65
1 blue 90 80 70

代码如下:

代码如下(示例):

#include <stdio.h>
#include <string.h>
typedef struct student//使用typedef,简化命名,进行替代
{
    
                      
    char str[10];
    char name[10];
    int a,b,c;
}stu;
int main()
{
    
    
    int n,i=0;
    stu s,max;
    float   s1=0,s2=0,s3=0;
    scanf("%d",&n);
    max.a=0;
    max.b=0;
    max.c=0;
    for(i=0;i<n;i++)
    {
    
    
        scanf("%s %s %d %d %d",s.str,s.name,&s.a,&s.b,&s.c);
        if((max.a+max.b+max.c)<(s.a+s.b+s.c))
           max=s;
           s1=s1+s.a;
           s2=s2+s.b;
           s3=s3+s.c;
    }
    printf("%.0f %.0f %.0f\n",s1/n,s2/n,s3/n);
    printf("%s %s %d %d %d\n",max.str,max.name,max.a,max.b,max.c);
    return 0;
}


总结

  结构体其实就是一个类型的名称的简化,方便引用来的。
  其他的计算和之前的一样
  定义结构体,主函数的循环输入与输出,循环中的累计比较和累加,累计等等。

猜你喜欢

转载自blog.csdn.net/qq_51907130/article/details/111249623