C语言初学者,对一维数组有问题

img


为什么其他的都对的上,就P[0]=6啊?第一个for循环和第二个for循环整天交换A[0]就出现和P[0]一样的问题。

A数组只有2个元素长度,你却 i<3 j<3,这导致越界,结果是不可知的(不同编译器不同环境,结果不同)

供参考:

img

img


数组越界了,你这编译器居然没报错

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7695156
  • 以下回答来自chatgpt:

    对于问题中提到的一维数组的问题,我们无法提供具体的解决方案,因为问题描述并不清楚,没有给出完整的代码。但是,我可以给你一些可能的原因和解决方法。

    可能的原因:首先,P[0]=6在你的代码中出现问题可能与数组越界或者内存错误有关。另外,在两个for循环位置互换后,A[0]和P[0]出现相同问题的原因可能是在第一个for循环中A[0]的值被修改,从而影响了第二个for循环中P[0]的值。

    可能的解决方法:首先,确保你的数组定义和初始化正确,数组越界或者内存错误都可能导致问题。其次,检查第一个for循环中是否正确地修改了A[0]的值,如果没有修改,则在第二个for循环中不应该出现问题。如果确实需要在第一个for循环中修改A[0]的值,并且需要在第二个for循环中使用P[0]的值,可以将第一个for循环和第二个for循环分开,确保它们的执行顺序不会相互影响。

    如果这些建议并没有解决你的问题,我建议你提供更多的代码和错误信息,这样我可以更好地帮助你解决问题。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^