佬们,为什么输出的最后会有一个“0”呀

P5737 【深基7.例3】闰年展示

~~~cpp if (((x % 100 != 0) && (x % 4 == 0)) || (x % 400 == 0)) { arr[i] = { x }; sum++; i++; } ~~~ 这里 因为在记录操作后才进行i++,那么i的值一定是记录总数+1 所以最后一段输出时会输出一个空值(0)
by fzy1026 @ 2023-10-31 17:49:16


第 19 行, 改成 `for (int i = 0; i < j; i++)` 就行了。 因为数组下标是从 $0$ 开始的。
by wzj0829 @ 2023-10-31 17:49:21


@[XTTian](/user/1165215) 再唠一句,如果你想从下标 $0$ 循环 $n$ 次, 那么就是 `for (int i = 0; i < n; i++)` ~~求关~~
by wzj0829 @ 2023-10-31 17:51:35


@[XTTian](/user/1165215) 举例来说,假设一共有4个闰年 那么arr[4]记录的便是最后一个闰年的年份,并且在记录完后i++,i=5 而在最后遍历输出时,i最大会取到5(因为j=i=5),也就是输出arr[5]. 但是arr[5]里面并没有存数并且已经初始化为0了,所以会输出0
by fzy1026 @ 2023-10-31 17:51:42


@[wzj0829](/user/1028403) 正确的
by fzy1026 @ 2023-10-31 17:52:45


|