C语言中,设计一个程序,把任意个浮点数读入数组里,然后计算平均值

2024-12-01 04:54:41
推荐回答(2个)
回答1:

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;is+=a[i];
printf("avg=%f",s/n);
return 0;
}

回答2:

#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;i sum = sum+number[i];
average = sum / n;
printf("%lf",average);
return 0;
}

//示例运行结果如下:
F:\c_work>a.exe
请输入任意多个数:
100 200 300 400 500 0
300.000000