gpt4 book ai didi

c++ - 添加到单个数组元素 - C++

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

我需要将 +0.25 或 -0.25 添加到数组中的所有元素。这是我到目前为止所拥有的。任何帮助将不胜感激。

int main() {

double i;


// Arrays
double x[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
double x2[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};



for(i=1; i<=10; i++) {
const double pM[2] = {-1, 1};
int randoid = rand() % 2;
for(i=1; i<=10; i++){
x2[i] = x[i] + pM[randoid]*0.25; //Error Line
}
}

cout << x;
cout << x2;
}

我在标记行收到此错误:“无效类型 'double[10][double] 用于数组下标”

最佳答案

问题是 i是一个双。然后你写x2[i] .

这不是一个很好的错误信息;然而与[]运算符,其中一个操作数必须是指针,另一个必须是整数。使用此运算符时,不会将 float 隐式转换为整数。

修复此更改 double i;int i;


另一个问题是您的代码访问了数组的边界。 double x2[10]意味着有 10索引为 0 的元素通过9 .但是你的循环试图写入 x2[10] .这会导致未定义的行为,这可以解释您的奇怪输出。


还有一个潜在的逻辑错误。也许您打算对内部循环使用与外部循环不同的变量。就目前而言,内部循环将采用 i11 (或 10,如果您修复了代码)然后外循环将完成,不再执行任何迭代。

不过,根据您的描述,也许您一开始只想有一个循环。如果是这样,请删除外部循环并将内容保留在那里。

此外,您不需要两个单独的数组,您可以就地执行加法。


关于输出,cout << xcout << x2将输出数组所在内存地址的编号。要改为输出数组的内容,您需要编写另一个循环,或使用迭代容器的标准库算法。

关于c++ - 添加到单个数组元素 - C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33602641/

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