c语言数组专题代码问题

为什么在for中i=0开始的时候打印错误的,i=1开始的又是对的

img

img

你i=1的时候,才只读取到了19个数,刚好到20那里,多出来的19没有存进数组。max结果是对的只不过是巧合罢了。你输出来的应该一直会是最后一个数

我猜你换个测试用例的话,i=1时也不成立。你的程序一定会打印你数组第19个位置的元素。因为你只存到数组第19个位置,而第20个位置默认是0,所以与下一个元素比较必定大于0,固定输出你最第19个位置元素,当i=1时,19位为20故输出20,i=0时,19位为19故输出19。
你需要把代码改为后一个元素与前一个元素进行比较,而不是现在的前一个元素与后一个比较。