这个错的怎么改?尽量快。9:30就关了。

来源:百度知道 编辑:UC知道 时间:2024/06/30 17:25:15
#include<stdio.h>
void func(int a[],int n)
{
int i,s=0;
float ave;
for (i=0;i<n;i++)
{
s+=a[i];
}
ave=(float)s/n;
}
main()
{
int n,i;
printf("请输入个数:");
scanf("%d",&n);
printf("请输入分数:");
for(i=0;i<n;i++)
func(a[],n);
}
是求一个一维数组的平均数问题,问题出在函数调用上

晕,你没有定义数组a,你这个是传址调用,调用时,实参用指针。数组的大小不弄用变量。
#include <stdlib.h>
#include<stdio.h>
float func(void)
{
int i,s=0,*a,n=0;
float ave;
printf("请输入人数:");
scanf("%d",&n);
a=(int *)malloc(n*sizeof(int));
for(i=0;i<n;i++)
{
printf("请输入分数:");
scanf("%d",a+i);
getchar();
s+=a[i];
}
ave=s/n;
return(ave);
}
int main()
{
float ave;
ave=func();
printf("平均分是:%f",ave);
} 这个可以了吧,^_^

#include<stdio.h>
float func(int a[],int n)
{
int i,s=0;
float ave;
for (i=0;i<n;i++)
{
s+=a[i];
}
ave=(float)s/n;
return ave;
}
main()
{
int n,i;
printf("请输入个数:");
scanf("%d",&n);
printf("请输入分数:");
int *a = new int[n];
for(i=0;i<n;i++){