题目:输入整数N,再输入N个学生的学号、姓名和成绩。最后输出总成绩、平均成绩和不及格人数。(使用结构体)

输入格式:

整数N(N<100)

N个学生的信息,一行一个学生,包括:学号(整数)、姓名(不超20个字符中间无空格)、成绩(实数)

输出格式:

总成绩 平均成绩 不及格人数(中间以空格相隔)

小数保留2位

输入样例:

5
1001   YaolinPan       89
1002   YuhangGao       98.9
1003   JunyuanGao      42.5
1004   HongpengYang    72
1005   YuxuanHan       35

输出样例:

337.40 67.48 2

这道题是真的折磨死小编了,搞了一个半小时,也跑不出结果来,还是小编找的大神找了一下代码中的错误才跑出了正确的结果。

话不多说,上码!!!

#include<stdio.h>
int main()
{
    //声明结构体student
    struct student
    {
        //学生学号
        int num;
        
        //学生姓名
        char name[20];
        
        //学生成绩
        float score;
    };
    
    int n,count=0;
    float average,sum=0;
    
    //输入学生人数
    scanf("%d",&n);
    
    //定义结构体数组
    struct student stu[100];
    
    //利用循环输入学生的学号,姓名,成绩
    for(int i=0;i<n;i++)
    {
        scanf("%d%s%f",&stu[i].num,stu[i].name,&stu[i].score);
        
        //计算总成绩
        sum+=stu[i].score;
        
        //判断是否及格,统计不及格人数
        if(stu[i].score<60)
            count++;
    }
    
    //求平均成绩
    average=sum/n;
    
    //输出总成绩,平均成绩,不及格人数
    printf("%.2f %.2f %d",sum,average,count);
    
    return 0;
}

小编最开始就是在循环的那个输入中把%s写的是%c,一直错误,气死小编了,后来小编上csdn查了查%c和%s的区别才恍然大明白。csdn确实好用(没在打广告!!!!!!)


版权声明:本文为m0_57344907原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/m0_57344907/article/details/117840906