1、规定了数量n=0,不符合题目要求输入任意数量的浮点数;而且直接在对i的循环中规定i 2、没有逐一读取输入数。 这个程序基本上全错了。注意:C语言通过编译,并不代表程序正确,格式有错误有时也能通过编译,如果算法错误,程序是不会替你判定的。往往会有通过编译的程序实际上全错了,例如你写的程序就是。 给出正确的程序:#include
int main(){
int i,n=0;
float num,s=0,avg,a[10000];
while(scanf("%f",&num)!=EOF)
{a[n]=num;n++;}
for(i=0;i
printf("avg=%f",s/n);
return 0;
}
#include
int main(void)
{
printf("请输入任意多个数:\n");
double number[100000];//定义一个名为“number”的数组
int i=0;
int n=0; //你n初始值是0,所以下面的for循环的条件不满足,修改如下
while(1)
{
scanf("%lf",&number[i]);
if(number[i] == 0) //如果输入0值就退出循环
break;
else
++i;
}
n=i; //输入的个数赋值给变量n
double average=0;//定义一个变量“average”,并初始化
double sum = 0;//定义一个变量“sum”,并初始化
for(i=0;isum = sum+number[i];
average = sum / n;
printf("%lf",average);
return 0;
}
//示例运行结果如下:
F:\c_work>a.exe
请输入任意多个数:
100 200 300 400 500 0
300.000000