100个学生参加C语言课程的考试,统计并输出不及格人数及其百分比这道题目

我写的是#include <stdio.h>

void main(void)
{float a[10],c,m=0;
int i;
for(i=0;i<10;i++)
scanf("%f",&a[i]);
for(i=0;i<10;i++)
{
if(a[i]<60)
m=m+1.0;
}
c=m/10;
printf("不及格人数%5d其百分比%5f",m,c);
}输出的不及格人数永远是0
而改成#include <stdio.h>
void main(void)
{float a[10],c;
int i,m=0;
for(i=0;i<10;i++)
scanf("%f",&a[i]);
for(i=0;i<10;i++)
{
if(a[i]<60)
m=m+1;
}
c=(float)m/10;
printf("不及格人数%5d其百分比%5f",m,c);
}以后就正常了
请问我哪里错了吗?

printf("不及格人数%5d其百分比%5f",m,c);不是%5d,而是%d,认识是整形
变量m表示人数,也是整形来的,然后c是表示百分数是浮点型的,c=(float)m/10;就是讲m变成浮点数,然后相除就是浮点数了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-12
#include<stdio.h>
void main(void)
{float a[10],c,m=0;
int i;
for(i=0;i<10;i++)
scanf("%f",&a[i]);
for(i=0;i<10;i++)
{
if(a[i]<60)
m=m+1.0;
}
c=m/10;
printf("不及格人数%5f其百分比%5f",m,c);//输出的m格式应该是%5f而不是%5d
}本回答被网友采纳
第2个回答  2012-05-14
将第一个程序中后面的"printf("不及格人数%5d其百分比%5f",m,c);"改成“printf("不及格人数%2f其百分比%5f",m,c);”就行了。
第3个回答  2012-05-12
第一次你定义的m是float类型单printf中用的是%d输出的,错在这儿了