Namaran

Code daily. Without assist.

2026-09-12

subtotal.c

#include <stdio.h>

int main(void) {
    int prices[6] = {3, 6, 9, 12, 15, 18};
    int subtotal = 0;
    for (int i = 0; i <= 4; i++) {
        subtotal += prices[i];
    }
    printf("%d\n", subtotal);
    return 0;
}

pricesは6要素ありますが、このループは本当に全部を合計しているでしょうか。実行すると何が出力されますか。

Answer

45です。ループはi = 0からi <= 4が真の間、つまり添字0・1・2・3・4の5要素だけ実行され、末尾のprices[5](18)には触れません。<=という境界の書き方が、配列全体ではなく「先頭5個まで」の部分和になっている原因です。3+6+9+12+15で45になります。