注册 登录
编程论坛 C语言论坛

救救孩子啊,各位大神

秃头大凡 发布于 2021-11-16 20:28, 1499 次点击
输入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
1 回复
#2
白白白小白2021-11-17 16:45
程序代码:
/*输入n个学生的姓名及其3门功课成绩,要求按输入的逆序逐行输出每个学生的姓名、3门课成绩和平均成绩。
若有学生平均成绩低于60分,则不输出该学生信息。
*/
#include<stdio.h>
struct student
{
    char name[5];
    int grade1,grade2,grade3;
    double average;
};

int main()
{
    struct student stu[5];
    int i,j,grade1=0,grade2=0,grade3=0;
    double average=0;
    for(i=0;i<5;i++)
    {
        scanf("%s %d %d %d",stu[i].name,&stu[i].grade1,&stu[i].grade2,&stu[i].grade3);
        for(j=0;j<5;j++)
        {
            stu[j].average=(stu[i].grade1+stu[i].grade2+stu[i].grade3)/3.0;
            if(stu[j].average>=60)
            printf("%s %d %d %d %.2f\n",stu[i].name,stu[i].grade1,stu[i].grade2,stu[i].grade3,stu[j].average);break;
        }
    }
    printf("\n");
   
    return 0;   
}


[此贴子已经被作者于2021-11-17 16:51编辑过]

1