求平均值 (C语言) 程序有问题!……………………

来源:百度知道 编辑:UC知道 时间:2024/06/01 22:42:01
#include<stdio.h>

int lense(double *a)
{
int lens=0;
while (*a!=\0)
{
lens++;
a++;
}
return lens;

}

double aver(double *a)
{
double aver;
double m;
while (*a!=\0)
{
m+=*a;
a++;
}
aver=m/lense(a);
return aver;
}

int main()
{
double Vav;
double a[20];
for (int i=0;i<20;i++)
{
scanf("%f\n",a[i]);
}
Vav=aver(a);
printf("the average is %f",Vav);
return 0;
}

#include<stdio.h>

int lense(double *a)
{
int lens=0;
while (*a!=0)
{
lens++;
a++;
}
return lens;

}

double aver(double *a)
{
double aver;
double m=0;
while (*a!=0)
{
m+=*a;
a++;
}
aver=m/lense(a);
return aver;
}

int main()
{
double Vav;
double a[20];
for (int i=0;i<20;i++)
{
scanf("%f\n",a[i]);
}
Vav=aver(a);
printf("the average is %f",Vav);
return 0;
}

输入的时候,scanf("%f",a++);
或scanf("%f",&(a[i]));
输入函数的参数应该是取地址。另外你循环有20次就一定要输入20次,所以求长度的函数多余了。

除了字符数组之外,其它的数组都不能以查找'\0'的方式找到结尾。

//---------------------------------------------------------------------------

#include<stdio.h>

double aver(double *a,int n)/*n是数组a的元素个数*/
{
double aver;<