練習 [2] if 文(4/5)

練習 4(提出プログラム名:p0204a.c)

以下の例のように実行できるプログラムを作りなさい.提出ファイル名は p0204a.c としなさい.
このプログラムでは入力される 2 人の成績の差(絶対値)を a として,
 (1) a == 0 ならば:「全く同じですね」と表示する.
 (2) (1) ではないが a < 10 ならば:「ほぼ同じですね」と表示する.
 (3) (1), (2) ではないが a < 20 ならば:「差がつきましたね」と表示する.
 (4) 上のいずれもでもない場合:「勝負になりませんね」と表示する

ただし,絶対値 a を求めるにあたって,C 言語に予め用意されている abs という関数を使ってはいけません.

【ヒント】
この問題のように複数の if – else が必要な場合は以下のように書くと良いです:

 if ( 条件1 )
 {
   ....... ← 条件1 が成り立つときの処理
 }
 else if ( 条件2 )

 {
   ...... ← 条件1 は成り立たないが,条件2 は成り立つときの処理
 }
 else if ( 条件3 )

 {
   ...... ← 条件1,2 は成り立たないが,条件3
成り立つときの処理
 }
 else

 {
   ...... ← 条件1,2,3 のいずれも成り立たないときの処理
 }

  • 【プログラムの実行例】(その1)赤字は実行時にキーボードから入力する内容
2 人の成績を入力してください:70 70
全く同じですね
  • 【プログラムの実行例】(その2)赤字は実行時にキーボードから入力する内容
2 人の成績を入力してください:75 70
ほぼ同じですね
  • 【プログラムの実行例】(その3)赤字は実行時にキーボードから入力する内容
2 人の成績を入力してください:75 85
差がつきましたね
  • 【プログラムの実行例】(その4)赤字は実行時にキーボードから入力する内容
2 人の成績を入力してください:60 80
勝負になりませんね

【過去にあったミス(実際に減点となり,やり直しを命じられた例)】
■ 上に示した4通りの実行例を試していない
ヒントを見落としていて,プログラムが必要以上にごちゃごちゃしている.
■ 条件として「a < 10」と書くべきところを「a <= 10」と書いてしまっている.
インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).


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