题目:输入整数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 版权协议,转载请附上原文出处链接和本声明。