初級 › 配列のループが1つずれて範囲外を読む・最後の要素が抜ける › パターン3
配列のループが1つずれて範囲外を読む・最後の要素が抜ける
添字は0から要素数-1までという境界を1つ間違えると、最後の要素が抜けたり、配列の外を読んでしまったりします。
1 #include <stdio.h> 2 3 int main(void) { 4 int temps[5] = {18, 20, 19, 21, 17}; 5 int count = _; ^ 6 int sum = 0; 7 for (int i = 0; i < count; i++) { 8 sum += temps[i]; 9 } 10 printf("%d\n", sum); 11 return 0; 12 }
出力: 78期待: 95
空欄を埋めてコンパイル・実行を通す
countを要素数5より1つ少ない4にすると、最後の要素(17)が合計から漏れます。要素数を数える変数は実際の要素数と一致させる必要があります。
次の問題