c语言 输入n,再输入n个学生的成绩,算平均分,并计算等级成绩个数
发布网友
发布时间:2023-08-28 17:53
我来回答
共4个回答
热心网友
时间:2024-12-03 18:43
#include<stdio.h>
int main(void)
{
int n,i,A,B,C,D,E;
double grade,total=0;
A=B=C=D=E=0;
printf("Input n:\n");
scanf("%d",&n);
for(i=1;i<=n;i++){
scanf("%lf",&grade); //double输入格式是%lf
total=total+grade;
switch((int)grade/10){ //swtich要求整型,而grade/10是个double,所以要转换成整型
case 9:
A++;
break;
case 8:
B++;
break;
case 7:
C++;
break;
case 6:
D++;
break;
default:
E++;
break;
}
}
printf("Average is :%f\n",total/n);
printf("%d %d %d %d %d",A,B,C,D,E);
return 0;
}追问请问什么时候用%f ?
追答输入float用%f
热心网友
时间:2024-12-03 18:43
#include<stdio.h>
int main(void)
{
int n,i,A,B,C,D,E,grade;
double total=0;
A=B=C=D=E=0;
printf("Input n:\n");
scanf("%d",&n);
for(i=1;i<=n;i++){
scanf("%d",&grade);
total=total+grade;
switch(grade/10){
case 9:
A++;
break;
case 8:
B++;
break;
case 7:
C++;
break;
case 6:
D++;
break;
default:
E++;
break;
}
}
printf("Average is :%f\n",total/n);
printf("%d %d %d %d %d",A,B,C,D,E);
return 0;
}
如果grade是oble型的,那么(grade/10)就不是正数,用switch就不能实现等级计数了。
热心网友
时间:2024-12-03 18:44
你的这个程序写的不是很清晰,应该要尽量把需要输入的提示语句显示出来,而且你那个{怎么就写在switch后面,应该要另起一行,逗号后面应该都要空格一个,这样使别人看的更清楚,我老师就是这么教我的,你先在前面定义一个int n = 0,然后再在total=total+grade;后面写一句n++;再在最后面把n输出就行了
热心网友
时间:2024-12-03 18:45
switch里的表达式,必须是整数表达式,你grade是double,不可以。