C语言 统计不及格人数

如题所述

#include <stdio.h>
int main()
{
     int number,count;
     double grade,sum;
     count=number=sum=0;
     printf("Input grades:");
     scanf("%lf",&grade);
     while(grade>=0)
     {sum=sum+grade;
     number=number+1;
     if(grade<60)
         count=count+1;
     scanf("%lf",&grade);}
     if(number==0)
         printf("average=0,count=0");
     else
         printf("平均分数%.2f,不及格人数:%d\n",sum/number,count);
     return 0;
}

说明:输入负数,退出循环。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-09
#include "stdio.h"

int main()
{
int d,n;

printf(“输入成绩,以负数结束:”);
n=0;
scanf("%d",&d);
while(d>=0)
{
if(d<60)
{
n=n+1;
}
scanf("%d",&d);
}
printf("不及格人数为:%d",n);
return 0;
}追问

为什么有两次scanf("%d",&d);

追答

因为判断时要用到d的值,如果用直到型(do),统计上又会出错,所以这样用了。

追问

scanf是格式化输入,输入函数在开头不是已经用过一次了吗,成绩也输入了,为什么还要再用一次输入函数

追答

循环体中要有的呀,我做的是输一个统计一个,没用数组。

追问

麻烦你用数组做一个,老师让用一维数组

追答

#include "stdio.h"
int main()
{
int d[1024];
int i,n,num;
printf(“输入成绩,以负数结束:”);

n=0;
scanf("%d",&d);
while(d[n]>=0)
{
n=n+1;
scanf("%d",&d[n]);
}

num=0;
for(i=0;i<n;i++)
{
if(d[i]<60)
num=num+1;
}
printf("不及格人数为:%d",num);
return 0;}
}

本回答被网友采纳
第2个回答  2013-01-09
你自己先写写吧,直接给个问题。。
相似回答