Namaran

Code daily. Without assist.

2026-08-24

day_type.c

#include <stdio.h>

void print_day_type(int day) {
    switch (day) {
        case 0:
        case 6:
            printf("weekend\n");
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
            printf("weekday\n");
        default:
            printf("invalid\n");
    }
}

print_day_type(0)を呼び出すと、1行ではなく3行出力されてしまいます。バグを見つけて、最小限の変更で直してください。

Answer

break;文が抜けています。printf("weekend\n");の後とprintf("weekday\n");の後にそれぞれ追加し、制御が次のcaseへフォールスルーしないようにしてください。break;がないと、case 0にマッチした時点で、それ以降のすべてのcaseも実行されてしまいます。