问题
题目描述
有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;
}
总结
结构体其实就是一个类型的名称的简化,方便引用来的。其他的计算和之前的一样定义结构体,主函数的循环输入与输出,循环中的累计比较和累加,累计等等。