欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

问题 F: 平均成绩第一

程序员文章站 2024-03-18 21:12:28
...

时间限制: 1 Sec 内存限制: 128 MB
提交: 973 解决: 447
[状态] [提交] [命题人:外部导入]
题目描述
假设学生的基本信息包括学号、姓名、三门课程成绩以及个人平均成绩。输入n个学生的成绩信息,计算并输出平均分最高的学生信息。
不完整程序如下。请在begin和end之间将代码补充完整。
#include <stdio.h>
struct student{ /学生信息结构类型定义/
int num; /学号/
char name[10]; /姓名/
int computer,english,math; /三门课程成绩/
double average; /个人平均成绩/
};
int main(void)
{
int i,n;
struct student s1,max;
scanf("%d",&n);
/********* begin **********/

/********* end **********/
printf("%d %s %d %d %d ",max.num,max.name,max.computer,max.english,max.math);
printf("%.3f\n",max.average);
return 0;

}
输入
先输入n(1<=n<100),然后输入n个人的信息。
例如:
3
101 Zhang 78 87 85
102 Wang 91 88 90
103 Li 75 90 84
输出
输出平均分最高的同学的所有信息,并输出其平均分,平均分精确到小数点后面3位。
例如:
102 Wang 91 88 90 89.667
样例输入 Copy
3
101 Zhang 78 87 85
102 Wang 91 88 90
103 Li 75 90 84
样例输出 Copy
102 Wang 91 88 90 89.667

#include <stdio.h>
struct student{ /学生信息结构类型定义/
int num; /学号/
char name[10]; /姓名/
int computer,english,math; /三门课程成绩/
double average; /个人平均成绩/
};
int main(void)
{
int i,n;
struct student s1[200],max;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d%s%d%d%d",&s1[i].num,s1[i].name,&s1[i].computer,&s1[i].english,&s1[i].math);
s1[i].average=(s1[i].computer+s1[i].english+s1[i].math)/3.0;
}
max=s1[0];
for(i=1;i<n;i++)
{
if(s1[i].average>max.average)max=s1[i];
}

printf("%d %s %d %d %d ",max.num,max.name,max.computer,max.english,max.math);
printf("%.3f\n",max.average);
return 0;

}

#include <stdio.h>
struct student{ /学生信息结构类型定义/
int num; /学号/
char name[10]; /姓名/
int computer,english,math; /三门课程成绩/
double average; /个人平均成绩/
};
int main(void)
{
int i,n;
struct student s1,max;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d%s%d%d%d",&s1.num,s1.name,&s1.computer,&s1.english,&s1.math);
s1.average=(s1.computer+s1.english+s1.math)/3.0;
if(i==0)max=s1;
if(s1.average>max.average)max=s1;
}

printf("%d %s %d %d %d ",max.num,max.name,max.computer,max.english,max.math);
printf("%.3f\n",max.average);
return 0;

}