初級 › 配列のループが1つずれて範囲外を読む・最後の要素が抜ける › パターン2
配列のループが1つずれて範囲外を読む・最後の要素が抜ける
添字は0から要素数-1までという境界を1つ間違えると、最後の要素が抜けたり、配列の外を読んでしまったりします。
1 #include <stdio.h> 2 3 int main(void) { 4 int prices[4] = {10, 20, 30, 40}; 5 int total = 0; 6 for (int i = 0; i < _; i++) { ^ 7 total += prices[i]; 8 } 9 printf("%d\n", total); 10 return 0; 11 }
出力: 60期待: 100
空欄を埋めてコンパイル・実行を通す
要素数4の配列なのに境界をi<3にすると、最後の要素(40)が合計に含まれません。有効な添字は0〜3までなので、境界には要素数そのものを使います。
次の問題