因为你在main()中的数组a 和你在函数ave(int x)中的数组a并不是同一个,这个是变量的作用域导致的
计算均值的时候,实际上用的是在ave(int x) 中新定义没有初始化的数组a
所以返回的均值就是随机数
改正:
#include
float a[2][3], ave(int x);
void main()
{
int i, j;
for (i = 0; i < 2;i++)
for (j = 0; j < 2; j++)
scanf("%f", &a[i][j]);
for (i = 0; i < 2; i++)
a[i][2] = ave(i);
for (i = 0; i < 2;i++)
for (j = 0; j < 3; j++)
{
printf("%.1f ", a[i][j]);
if (j == 2) printf("\n");
}
}
float ave(int x)
{
float m = 0, z;
int n;
for (n = 0; n < 2; n++)
m = m + a[x][n];
z = m / 2;
return z;
}
希望对你有帮助
循环输入数,平均值用浮点数
# include
main()
{
int i,j,sum=0;
double av;
int a[3];
printf("input 3 nembers:\n");
for (i=0;i<3;i++)
scanf ("%d",&a[i]);
for (i=0;i<3;i++)
sum=sum+a[i];
av=sum/3.0;
printf ("%f",av);
}
把a申明成全局变量,或者在ave()传递参数a