【发布时间】:2020-07-03 15:48:41
【问题描述】:
我有 2 个数组,我想要平均值,为什么当我尝试运行代码时平均值总是 0?
void avg(int a[], int b[], float d[]);
void main()
{
int a[N],b[N],i,c[N]={0};
float D[N]={0};
avg(a,b,D);
printf("D array is: ");
for(i=0;i<N;i++)
printf("%d, ",D[i]);
}
void avg(int a[], int b[], float d[])
{
int i;
for(i=0;i<N;i++)
{
d[i]=((a[i]+b[i])/2.0);
}
}
【问题讨论】:
-
您没有为数组 a 和 b 分配值,因此编译器只是假定垃圾或 0(取决于编译器,在您的情况下为 0),因此您在平均数组中得到 0。
-
int a[N],b[N]==>int a[N] = {1, 2, 3, 4, 5},b[N]={101, 102, 103, 104, 105} -
旁白:
c未使用。 -
如果在
printf("%d, ",D[i]);中将%d更改为适合float的格式说明符会怎样? -
哇,谢谢!我只将 %d 更改为 %f 并且一切正常。 c 已使用,但与我的问题无关,所以..
标签: c arrays function pointers