输入n个学生的姓名及其3门功课成绩,要求按输入的逆序逐行输出每个学生的姓名、3门课成绩和平均成绩。若有学生平均成绩低于60分,则不输出该学生信息。
输入格式:
测试数据有多组,处理到文件尾。每组测试数据首先输入一个正整数n(1<n<100),表示学生人数;然后是n行信息,分别表示学生的姓名(长度不超过10且由英文字母构成的字符串)和3门课成绩(正整数)。
输出格式:
对于每组测试,输出所有满足要求的学生信息,每行一个学生信息:姓名、3门课成绩和平均成绩(保留2位小数)。每行的每两个数据之间留一个空格。
输入样例:
3
zhangsan 80 75 65
lisi 65 52 56
wangwu 87 86 95
输出样例:
wangwu 87 86 95 89.33
zhangsan 80 75 65 73.33
#include <stdio.h>
typedef struct //定义结构
{
char name[20];
int a;
int b;
int c;
float avg;
} student; //命名结构
int main()
{
int n, i;
while(scanf("%d",&n) != -1) //处理到文件尾的输入方式
{
student stu[n]; //定义一个结构类型的数组
for(i = 0; i < n; i++)
{
scanf("%s %d %d %d",stu[i].name, &stu[i].a,&stu[i].b,&stu[i].c);
stu[i].avg = (stu[i].a+stu[i].b+stu[i].c)/3.0; //求平均数
}
for(i = n-1; i >= 0; i--)
{
if(stu[i].avg >= 60)
{
printf("%s %d %d %d %.2f\n",stu[i].name, stu[i].a,stu[i].b,stu[i].c,stu[i].avg);
}
}
}
}
|