#include<stdio.h>
void main()
{
float a[50];
int i,n=0;
for(i=0;getchar()!='\n';i++)
{
scanf("%f",&a[i]);
n++;
}
printf("平均值是:%f",b(a[50],n) );
}
float b(float arr[],int n)
{
float sum=0,c;
int i;
if(n==0)
return(0);
for(i=0;i<n;i++)
{
sum+=arr[i];
}
c=sum/n;
return(c);
}
这样为什么不行····
嗯 很详细 谢谢啦。。还想问下 为什么输入1 2 3 4 5 输出是3.500000呢?
追答for(i=0;getchar()!='\n';i++) //这个循环有点问题。
{
scanf("%f",&a[i]);
n++;
}
改成:
for(i=0;;i++) //因为getchar它会获取你的输入字符,试想一下,你输入的第一个数是1被它拿走了,
{ //下面的scanf就获取不到1了。
scanf("%f",&a[i]);
n++;
if(getchar()=='\n') break;
}