練習 [4] while 文(教科書では主に 4 章が対応)(1/5)

練習 1(提出プログラム名:p0401.c)

サンプルプログラム 1 (sample1.c)p0401.c という別の名前のファイルにコピーしなさい.そして,p0401.c を編集して以下の例のように実行できるプログラムを作りなさい.
このプログラムでは得点(1 つの整数)を読み込み(得点に応じた)メッセージを出力させなさい.
ただし,得点が 80 点未満の場合は再び得点の読み込みとメッセージの出力を繰り返すものとする.
なお,出力するメッセージは次のいずれかとする:
 ・得点が 60 未満の場合:全然ダメです
 ・そうでないが 80 未満の場合:もう少し頑張りましょう
 ・上のいずれでもない場合:合格です

※この問題は do-while 文の練習が目的なので,必ず do-while を使うことそれ以外の構造で作った場合は不正解と見なす).

【ヒント】
この問題の場合は次の構造にするとよいでしょう:
 do
 {
   点数を読み込む;
   if ( 60 点未満か? )

   {
    "全然ダメ\n" と表示;

  }
   else if ( 80 点未満か? )

   {
    "もう少し頑張りましょう\n" と表示;
  }
   else

   {
    "合格です\n" と表示;
   }
 }
while ( 80 点未満か? );

  • 【プログラムの実行例】(その1)赤字は実行時にキーボードから入力する内容
    必ずすべての実行例と同じであることを確認せよ(「その2」の方も必ず確認せよ)
得点を入力してください:30
全然ダメです
得点を入力してください:59
全然ダメです
得点を入力してください:60
もう少し頑張りましょう
得点を入力してください:95
合格です

  • 【プログラムの実行例】(その2)赤字は実行時にキーボードから入力する内容
得点を入力してください:80
合格です

【過去にあったミス(減点となり,やり直しを命じられる)】
■ 上の 2 種類の実行例と答えが違っている(きちんと確認していない).
  (例1)不要な文字列が表示されていたり,誤字があったりする.
  (例2)do-while ではなく while で作ろうとしてかえって複雑なプログラムになっている.
■ 繰り返しの条件を書き間違えていて無限ループになっている.
インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).


ミスが無いことを確認したら次の問題へ → [ 練習2 (p0402.c) ]