解题思路:
注意事项:
参考代码:
#include<stdio.h>
struct Student
{
char name[20];//名字
double grade_first;//第一科成绩
double grade_second;//第二科成绩
double grade_third;//第三科成绩
};
int main()
{
struct Student student[100];//声明
int num=0;//人数
int i;
char arr[100];//学号,如果写在结构体里面,就无法弄出字符了。
double first_sum=0;//第一学科总分数,兼平均分(最后算出)
double two_sum=0;//第二学科总分数,兼平均分(最后算出)
double three_sum=0;//第三学科总分数,兼平均分(最后算出)
double average[100];//每个学生的总分记录
double maxvalue=0;
int flag=0;
scanf("%d",&num);
getchar();
for(i=0;i<num;i++)
{
scanf("%c %s %lf %lf %lf",&arr[i],student[i].name,&student[i].grade_first,&student[i].grade_second,&student[i].grade_third);//输入数据
getchar();
}
for(i=0;i<num;i++)
{
first_sum=first_sum+student[i].grade_first;//算第一科总分
two_sum=two_sum+student[i].grade_second;//算第二科总分
three_sum=three_sum+student[i].grade_third;//算第三科总分
average[i]=student[i].grade_first+student[i].grade_second+student[i].grade_third;//记录每个人三科成绩总分
if(i==num-1)
{
first_sum=(double)(first_sum/num);//第一科算平均,
two_sum =(double)(two_sum/num);//第二科算平均
three_sum=(double)(three_sum/num);//第三科算平均
}
}
for(i=0;i<num;i++)
{
if(average[i]>=maxvalue)
{
maxvalue=average[i];//获得成绩最高的学生
flag=i;
}
}
printf("%.0f %.0f %.0f\n", first_sum,two_sum,three_sum);//输出平均值
printf("%c %s %.0lf %.0lf %.0lf\n",arr[flag],student[flag].name,student[flag].grade_first,student[flag].grade_second,student[flag].grade_third);
return 0;
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复