2019年国庆70周年筹备:c++中的一个小问题

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/29 05:52:45
该程序是求15个浮点数之和及平均值
# include <iostream.h>
double sum_double(double[]);
double average_double(double[]);
void main()
{
double a[15];
cout<<"请输入15个浮点数:";
for(int i=0;i<15;i++)
cin>>a[i];
double sum=sum_double(a);
double average=average_double(a);
cout<<"\n和为:"<<sum<<"\n平均值为:"<<average<<endl;
}
double sum_double(double m[])
{
double sum=0;
for(int j=0;j<15;j++)
sum+=m[j];
return sum;
}
double average_double(double n[])
{
double average,a;
a=sum_double(double n[]);
average=a/15;
return average;
}
出现如下3个错误,请高手指点:
\Cpp1.cpp(24) : error C2144: syntax error : missing ')' before type 'double'
\Cpp1.cpp(24) : error C2660: 'sum_double' : function does not take 0 parameters
\Cpp1.cpp(24) : error C2059: syntax error : ')'

# include <iostream.h>
double sum_double(double *m);
double average_double(double *n);
void main()
{
double a[15];
cout<<"请输入15个浮点数:";
for(int i=0;i<15;i++)
cin>>a[i];
double sum=sum_double(a);
double average=average_double(a);
cout<<"\n和为:"<<sum<<"\n平均值为:"<<average<<endl;
}
double sum_double(double *m)
{
double sum1=0;
for(int j=0;j<15;j++)
sum1+=m[j];
return sum1;
}
double average_double(double *n)
{
double ave,b;
b=sum_double(n);
ave=b/15;
return ave;
}
我稍稍作了一点修改,一些变量名不同,另外,参数我都改成了指针,调用的时候直接用地址参数即可,你细细看我的修改。

嘻嘻区分一下形参和实参就可以了

在以下代码中
double average_double(double n[])
{
double average,a;
a=sum_double(double n[]);
average=a/15;
return average;
}

其中a=sum_double(double n[])语句,
试图调用的是前文声明sum_double函数,
传入的形式参数为一双精数组double m[],
但是在实际调用的时候实参为n,传入时已声明,
不需要在调用时再声明一次,
所以把此句改为a =sum_double(n)编译即可通过

a = sum_double(n);