gpt4 book ai didi

c - 没有变量初始化的参数数组

转载 作者:太空宇宙 更新时间:2023-11-03 23:19:38 24 4
gpt4 key购买 nike

这有可能吗?

void putAverage(float *avg, int *arrData, int size) {
int i,sum = 0;
for(i = 0;i < size;i++) {
sum += *(arrData + i);
}
*avg = sum / size;
}

int main() {
float i;
putAverage(&i, {1, 2, 3, 4, 5}, 5);
printf("%f\n",i);
}

因为如果我运行它,它会显示这样的错误

error: expected expression before '{' token
error: too few arguments to function 'putAverage'
note: declared here

如果可以的话请改正,如果不行请给我最好的方法。

最佳答案

#include <stdio.h>

void putAverage(float *avg, const int *arrData, int size) {
int i,sum = 0;
for(i = 0;i < size;i++) {
sum += *(arrData + i);
}
*avg = (float)sum / size;
}

int main() {
float i;
putAverage(&i, (const int[]){1, 2, 3, 4, 5}, 5);
printf("%f\n",i);
return 0;
}

阅读此 answer以获得更多理解。

(const int[]){ 1, 2 ,3 ,4 ,5 }

int arr[] = {1, 2, 3 ,4 ,5 };
foo(arr); //Passing the array
添加

const 是为了确保我们不会错误地修改数组。

(float)sum 用于将整数除法类型化并存储为 float

关于c - 没有变量初始化的参数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44123734/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com