gpt4 book ai didi

C 不解析数组第一个元素 - AVR GCC

转载 作者:行者123 更新时间:2023-11-30 21:25:46 25 4
gpt4 key购买 nike

代码非常简单,我存储最后 10 个值并输出平均值。但是,数组的 0 元素保持不变,初始值为“0”。

long int avg[10] = {0,0,0,0,0,0,0,0,0,0};
int i;
float temp2;

for (i=0;i<9;i++){
avg[i] = avg[i+1]; //shift all values to the left
}
avg[9] = temp2; //temp2 is the last value

temp2 = 0; //i am reusing temp2 as mean result

for (i=0;i<10;i++){
temp2 += avg[i];
}

temp2 /= 10;

通过将结果除以 9,该值得到纠正,但这纯粹是一种解决方法,我想知道为什么会发生这种情况。

谢谢

编辑:

假设我的 adc 读取的值接近 250。在第一次运行中,值从右到左添加到数组中:

0   0   0   0   0   0   0   0   0   0
0 0 0 0 0 0 0 0 0 251
0 0 0 0 0 0 0 0 251 252
0 0 0 0 0 0 0 251 252 248

等等

虽然经过多次运行后,值应该填满表格,但表格始终具有以下形式:

0  251  252  248  250  247  253  252  248  247

我希望我说得更清楚

--编辑2:

你为什么对我的问题投反对票?是因为你不明白吗?哪个严肃的编译器会编译它而不出现错误/警告我没有初始化 temp2 以及由于这个原因出现这个问题的概率到底是多少?

最佳答案

您尚未初始化int temp2。这就是为什么你会得到这样的结果。

int temp2 = 0;
avg[9] = temp2;

关于C 不解析数组第一个元素 - AVR GCC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27089252/

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