标签:1051 题目 struct Information int void 体之 门课 成绩
题目描述
有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>
struct Information
{
char num[16];
char name[32];
int grade_1;
int grade_2;
int grade_3;
};
void input(struct Information *a,int N);
void average_f(struct Information *a,int N);
void maxf(struct Information *a,int N);
int main()
{
int N;
scanf("%d",&N);
struct Information a[N];
input(a,N);
average_f(a,N);
printf("\n");
maxf(a,N);
return 0;
}
void input(struct Information *a,int N)//输入成员数据
{
int i;
for(i=0;i<N;i++)
{
scanf("%s %s %d %d %d",&(a[i].num),&(a[i].name),
&(a[i].grade_1),&(a[i].grade_2),&(a[i].grade_3));
}
}
void average_f(struct Information *a,int N)//平均分
{
int i;
float average;
for(i=0,average=0;i<N;i++)
{
average+=a[i].grade_1/(float)N;
}
printf("%.0f ",average);
for(i=0,average=0;i<N;i++)
{
average+=a[i].grade_2/(float)N;
}
printf("%.0f ",average);
for(i=0,average=0;i<N;i++)
{
average+=a[i].grade_3/(float)N;
}
printf("%.0f ",average);
}
void maxf(struct Information *a,int N)//最高分
{
int i,max;
max=0;
for(i=1;i<N;i++)
{
if((a[max].grade_1+a[max].grade_2+a[max].grade_3)
<(a[i].grade_1+a[i].grade_2+a[i].grade_3))
{
max=i;
}
}
printf("%s %s %d %d %d",a[max].num,a[max].name,
a[max].grade_1,a[max].grade_2,a[max].grade_3);
}
标签:1051,题目,struct,Information,int,void,体之,门课,成绩 来源: https://blog.csdn.net/Small_Mie/article/details/120404006
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。