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も実行されてしまいます。