永发信息网

c++问题帮我找错:对某班学生的某科成绩x进行分段统计

答案:2  悬赏:20  手机版
解决时间 2021-04-25 19:26

分析:要求将[0-50],[60-69],[70-79],[80-89],[90-100]这5个分数段的人数分别统计在a[5]~a[9]中。学生成绩采用百分制。当非法输入时,结束统计。

这是书上的做法:但是我试了一下发觉有点不对,不知为什么

#include <stdio.h> void main() { float x; int i,k; static int a[10]; do { scanf("%f",&x); k=(int)x/10; if(k<6) k=5; if(k==10) k=9; a[k]=a[k]+1; } while(k>=0&&k<=10); for(i=5;i<10;i++) printf("%d",a[i]); }
最佳答案

原来的程序会将101到109之间的数统计到[90-100]这个分数段,所以应该加个判断:


#include <stdio.h>


void main()
{ float x; int i,k; static int a[10];
do {
scanf("%f",&x);
if(x>100) break;
k=(int)x/10;
if(k<6) k=5;
if(k==10) k=9;
a[k]=a[k]+1; }
while(k>=0&&k<=10);
for(i=5;i<10;i++) printf("%d",a[i]);


}

全部回答
改成这样就可以了 #include <stdio.h> void main() { int x; int i,k; static int a[10]; while(1) { scanf("%d",&x); getchar(); k=(int)x/10; if(k>=0&&k<6) k=5; else if(k==10) k=9; else if (k<0||k>10) break; a[k]=a[k]+1; } for(i=5;i<10;i++) printf("%d ",a[i]); }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
明天天气会是如何
他转身以后,我怎么办?
人们为什么会有恐惧?
兴枝包子店地洞口路顺东NO.2在哪里啊,我有事
QuickTime不能用
怎么在[衣之海岸]下载仓木麻衣的视频啊
谁能帮我做QQ真人秀昂。
朋友的真正含义是什么?
我的鞋子白边染上红色了,怎么才能弄下来
山川公寓怎么去啊,有知道地址的么
目前国内短缺的职业是什么?
牡丹江医学院
有一个人跟自己喜欢的人长得很像,但是自己喜
半夜惊醒为哪般?
从汽车站到萧山第一人民医院乘几路公交
推荐资讯
QQ幻想世界45的战士篮套谁的
文理科哪个更有前途?
宠物 小熊活动的CDKEY在哪里输(已有)?
谁有WAV的软件
扁豆中毒药物解救
鸽子疾病?急急急
一般办公绘图3D CAD PS 等要用的笔记本电脑配
插过USB接口后我电脑就很卡了
梦想可不可以结合现实
大明龙权里的人监狱样子
索爱哪个型号最好用?
3500左右电脑配置给点意见
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?