学校的数组实验,困惑求解
学生成绩统计(一维数组)从键盘输入一个班(全班最多不超过30人)学生某门课的成绩,当输入成绩为负值时,输入结束,分别实现下列功能:
(1)统计不及格人数并打印不及格学生名单;
(2)统计成绩在全班平均分及平均分之上的学生人数,并打印这些学生的名单;
(3)以直方图方式统计各分数段的学生人数及所占的百分比。形式如下:
分数段 学生人数 图形
<60 3(10%) ***
60-69 8(…) ********
70-79 7(…) *******
80-89 8(…) ********
>=90 4(…) ****
代码
#include<stdio.h>
#include<stdlib.h>
int main()
{
int score[30],count,i,d=0;//d为不及格人数
printf("学生成绩统计\n");
do
{
printf("请输入输入一个班(全班最多不超过30人)的学生人数,非法数据则请重新输入\n");
scanf("%d",&count);
}while(count<=0||count>30);
printf("按学号输入一个班(全班最多不超过30人)学生的成绩:\n");
for(i=0;i<count;i++)
{
scanf("%d",&score[i]);
if(score[i]<60)
d++;
}
for(i=0;i<count;i++)
{
if(score[i]<60)
printf("学号 %d\n",i+1);
}
printf("不及格人数 %d\n",d);
int ave,sum=0,e=0;//e为成绩在全班平均分及平均分之上的学生人数
for(i=0;i<count;i++)
sum=sum+score[i];
ave=sum/count;
for(i=0;i<count;i++)
{
if((score[i])>=ave)
e++;
}
for(i=0;i<count;i++)
{
if(score[i]>=ave)
printf("学号 %d\n",i+1);
}
printf("成绩在全班平均分及平均分之上的学生人数 %d\n",e);
int f1=0,f2=0,f3=0,f4=0,f5=0;
double bf1,bf2,bf3,bf4,bf5;
printf("分数段 学生人数 图形\n");
for(i=0;i<count;i++)
{
if(score[i]<60)
f1++;
if(score[i]>=60&&score[i]<70)
f2++;
if(score[i]>=70&&score[i]<80)
f3++;
if(score[i]>=80&&score[i]<90)
f4++;
if(score[i]>=90)
f5++;
}
bf1=f1/count*100;
bf2=f2/count*100;
bf3=f3/count*100;
bf4=f4/count*100;
bf5=f5/count*100;
printf("<60 %d(%d)",f1,bf1);
for(i=0;i<f1;i++)
printf("*");
printf("\n");
printf("60-69 %d(%.2lf)",f2,bf2);
for(i=0;i<f2;i++)
printf("*");
printf("\n");
printf("70-79 %d(%.2lf)",f3,bf3);
for(i=0;i<f3;i++)
printf("*");
printf("\n");
printf("80-89 %d(%.2lf)",f4,bf4);
for(i=0;i<f4;i++)
printf("*");
printf("\n");
printf(">=90 %d(%.2lf)",f5,bf5);
for(i=0;i<f5;i++)
printf("*");
printf("\n");
system("pause");
return 0;
}
问题:
为什么我程序输出结果百分比的那边全是0.00,我调了很多次都不行,求解