输入若干学生的成绩(用负数结束输入),计算其平均数成绩,并统计不低于平均分的学生人数

#include<stdio.h>
#define N 1000
int main()
{
int i,n=0;
float sum=0,average,a[N];
for(i=0;i<N;++i)
{
scanf("%f",&a[N]);
if(a[i]<0)break;
sum+=a[i];
average=sum/(i+1);
}
for(i=0;i<N;++i)
{
if(a[i]<average)continue;
++n;
}
printf("%d,%f\n",n,average);
getch();
return 0;
}
又要麻烦各位啦,输入负数了,也无法结束啊,检查了很多遍,还是找不到原因,高手赐教啊!
输入负数回车就一闪而过啦!输入正数回车可以继续输入,但没法结束拉啊,
改好拉,还是这样啊,可能不止这一个错吧,
as_dfghjk 你好 我改了,还是一闪而过啊.大家再帮帮忙看看吧

第1个回答  推荐于2018-04-21
#include<stdio.h>
#define N 1000
int main()
{
int i,n=0;
float sum=0,average,a[N];
for(i=0;i<N;++i)
{
scanf("%f",&a[i]);
if(a[i]<0) break;
sum+=a[i];
}
average=sum/(i);
for(;i>=0;--i)
if(a[i]>=average) ++n;
printf("%d,%f\n",n,average);
getch();
return 0;
}本回答被提问者和网友采纳
第2个回答  2008-08-01
改2个地方
#include<stdio.h>
#define N 1000
int main()
{
int i,n=0;
float sum=0,average,a[N];
for(i=0;i<N;++i)
{
scanf("%f",&a[i]); //这句N改成i
if(a[i]<0)break;
sum+=a[i];
average=sum/(i+1);
}
for(i=0;i<N;++i)
{
if(a[i]<average)continue;
++n;
}
printf("%d,%f\n",n,average);
system("pause");//getch();改了.
return 0;
}
第3个回答  2008-08-01
火大了,我自己写
int main()
{float sum=0,x;
int i,j;
for (i=0;i<30000;i++)
{ scanf("%f",&x);
if (x<0) break;
else { sum+=x;j=1}
}
if (j==1) printf("Avg = %f",sum/i);
return 0;
}

参考资料:自己写的

第4个回答  2008-08-01
#include<stdio.h>
#include <conio.h>
#define N 1000
int main()
{
int i,n=0;
float sum=0,average,a[N];
for(i=0;i<N;++i)
{
scanf("%f",&a[i]);
if(a[i]<0)break;
sum+=a[i];
average=sum/(i+1);
}
for(i=0;i<N;++i)
{
if(a[i]>=average)
++n;
}
printf("%d,%f\n",n,average);
getch();
return 0;
}
我改好了 赶快试试吧
第5个回答  2008-08-01
如果你用的是DEV CPP 在后面多加几个getchar(),因为第一个getchar()用来接收回车了,后面的才是起暂停作用。
相似回答