显示[Error] cannot convert 'double**' to 'double*' for argument '3' to 'void y(double*, int, double*, double*, double*)'该怎么调
输入示例:
5
1 2 3 4 5
输出示例:
max:5.00
min:1.00
aveg:3.00
#include
int i,n;
void y(double a[],int n,double *max,double *min,double *aveg)
{
*aveg=*max=*min=a[0];
for(i=0;iif(a[i]>*max)
*max=a[i];
if(a[i]<*min)
*min=a[i];
*aveg+=a[i];
}
*aveg=*aveg/n;
}
int main()
{
double *max,*min,*aveg,a[n];
scanf("%d",&n);
for(i=0;iscanf("%lf",&a[i]);
}
y(a,n,&max,&min,&aveg);
printf("max:%.2lf\nmin:%.2lf\naveg:%.2lf\n",max,min,aveg);
return 0;
}
main里的 double *max,*min,*aveg 这几个指针没有分配地址,调用时又加了&,对应的形参类型需要double **才可以。
这几个变量前不需要加星号。
a[n]的定义放到输入n之后,输入n之前n的值未知。