「この日は何曜日?」の解答例

この記事はC言語演習問題集の問題の回答です。まだ問題読んでないという方は下記記事の「この日は何曜日?」をぜひ見てから読んでください。

C言語練習問題のアイキャッチC言語応用問題集

回答例

#include <stdio.h>

int main(void){

  unsigned char day;
  int num;

  printf("2018年7月の何日目?");
  scanf("%d", &num);

  if(num > 31 || num < 1){
    printf("7月は1日から31日までです!\n");
    return -1;
  }

  switch(num % 7){
  case 0:
    printf("2018年7月%d日は土曜日です\n", num);
    break;
  case 1:
    printf("2018年7月%d日は日曜日です\n", num);
    break;
  case 2:
    printf("2018年7月%d日は月曜日です\n", num);
    break;
  case 3:
    printf("2018年7月%d日は火曜日です\n", num);
    break;
  case 4:
    printf("2018年7月%d日は水曜日です\n", num);
    break;
  case 5:
    printf("2018年7月%d日は木曜日です\n", num);
    break;
  case 6:
    printf("2018年7月%d日は金曜日です\n", num);
    break;
  default:
    printf("エラー\n");
    break;
  }

  return 0;
}

表示例

スポンサーリンク

解説

一つ目のポイントはエラー処理の概念の理解です。入力を受け付けるようなプログラムだとその入力が不正であったり大きすぎて扱いきれない数字であったりして処理できないケースがあります。

そういった場合は下記のようなエラー処理を行い、エラーであることを通知しましょう。

エラー処理は一般的に次の流れになります。

  • エラーかどうかの判断
  • エラーであることの通知

エラーかどうかの判断では条件分岐が必ず必要になります。

 

2つ目のポイントはswitch文です。こういった条件分岐を行うことで、入力された数字に応じて動的に実行される処理が適切に選ばれるようにプログラミングすることが可能です。

条件分岐のないプログラムだと結果は一つだけですが、条件分岐により動的に多数の結果を生み出すことができるのが、プログラミングのポイントだと思います。

スポンサーリンク

解説

条件分岐の問題出そうと思ったのですが、うーん、そんなに良くない問題になってしまった気がする。かなり普通な問題になってしまった。まぁ条件分岐はプログラミングやっていく上で必須の知識ですので、今後もたくさん扱うことになると思います。その中でぜひ知識を深めていってください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です