c语言编程:用数组名作函数参数,编写一个对一维数组求平均值的函数,并在主函数中调用它

#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);
}
这样为什么不行····

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

float b(float arr[],int n); //<<<<少了函数声明
void main()
{
float a[50];
int i,n=0;
for(i=0;getchar()!='\n';i++)
{
scanf("%f",&a[i]);
n++;
}
printf("平均值是:%f",b(a,n) ); //<<<<b这个函数传的是数组的首地址
}
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;
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-11-17
函数在前面没有声明。
第二行应加上 float b(float arr[],int n);

c语言编程:用数组名作函数参数,编写一个对一维数组求平均值的函数,并在...
return(c);}

C语言 编写一个一维数组求平均值的函数,在主函数中调用。要求数组名做...
printf("平均值:\\n");printf("%.3lf\\n",getAverage(array));return 0;}

...实现统计数组元素的值的平均值的个数,并在主函数打印输出
include <bits\/stdc++.h>#define LDB long doubleusing namespace std; LDB count(int a[]){ LDB tot=0; for (int i=0;i<10;i++) tot+=a[i]; tot\/=10; return(tot); } int main(){ int arr[10]; printf("%.3Lf\\n",count(arr)); } ...

c语言编程,输入一个数组,利用自定义函数求数组的平均数(用数组做参数...
int func(int *a;int b) \/\/这里a表示数组名,b表示数组的元素个数 { int c = 0;int i;for(i=0; i

C语言一维数组求平均值
C语言一维数组求平均值的源代码如下:include#defineN10 typedefintTYPE;TYPEsum(TYPEa[],intn){ TYPEs=0;inti;for(i=0;ia[j]{ temp=a[i];a[i]=a[j];a[j]=temp;}intmain(){

C语言编程题 编写函数,求数组中元素的平均数
参数说明: a是一维浮点数数组,n是数组中的元素个数 下面的函数求a中元素的平均值,并返回。float Average(float* a, int n){ int i;float s = 0;\/\/ 求和 for (i = 0; i < n; i ++)s += a[i];s \/= n; \/\/ 求平均 return s;} \/\/ 测试 void main(){ float a[] =...

C求平均数的题 怎么把取数组这个也用函数 在main中 怎么编写
c语言子函数不可以返回数组,子函数结束后数组的地址会直接释放,要调用只能用指针 最简单的办法~~~定义一个全局变量的数组好了 include<stdio.h>int asd(int Sorce[10]){int jg=0,i;for(i=0;i<10;i++){jg=jg+Sorce[i];}return jg=jg\/10;}int * sdf(int shuz[10]) \/\/返回不...

C语言作业:用数组设计程序 输入一百个数,求平均值,并分别求出与平均值...
main(){ float a[M], average, sum = 0.0;int i;printf ("输入%d个数:\\n", M);for (i=0; i<M; i++){scanf ("%f", &a[i]);sum += a[i];}average = sum \/ M;printf ("平均值是: %.2f\\n", average); \/\/精确到小数点后两位printf ("每个数与平均值的差值:\\n"...

C语言编写一个函数,在主函数中输入包含N个元素一维数组,求此数组中最...
int a[10000];int main(){ int n;double sum=0;cin>>n;memset(a,0,sizeof(a));for(int i=0;i<n;i++){ cin>>a[i];sum+=a[i];} sort(a,a+n);cout<<a[n-1]<<" "<<a[n-2]<<" "<<a[n-3]<<endl;cout<<"n个数的抄ave="<<sum\/n<<endl;cout<<"最大三个...

c语言编写一个函数,找出一维数组中的最大值和最小值,并计算出数组元素的...
n为数组元素个数,max指向最大数,min指向最小数,函数返回值为平均值*\/ int main(){ double b[10],aver;int x,y=10,max=0,*ma=&max,min=0,*mi=&min;for(x=0;x<y;x++){b[x]=x*(x-8.25)*0.1;printf("数%d=%f\\n",x,b[x]);} aver=fun(b,y,ma,mi);printf("最大...

相似回答