アプリ版:「スタンプのみでお礼する」機能のリリースについて

c言語のプログラミング
2つの整数を入力して大小を決めるプログラムを作りたいです。
「大きいほうは〇〇、小さいほうは〇〇です」としたいです。また2つの整数が同じときは同じですと表記させたいです。
if文を初めて使ったので、色々と間違えていますが教えてくださると嬉しいです。

#include <stdio.h>

int main()
{
int n1, n2, max, min;
printf("2つの整数を入力");
printf("整数1 :");
scanf("%d", &n1 );
printf("整数2 :");
scanf("%d", &n2 );
if( n1 == n2 ){
printf("2つの数は等しいです\n");
} else {
if ( n1 > n2 ){
max = n1;
min = n2;
} else {
max = n2;
min = n1;
}
printf("大きい方は %d 小さい方は %d です。\n", max, min);

printf("おわり\n");
return 0;
}

A 回答 (3件)

①コンパイルエラーが出ると思うので


 printf("大きい方は %d 小さい方は %d です。\n", max, min);
 と
 printf("おわり\n");
 の間の行を、空行ではなく
 }
 とする。

②実行時の見栄えも気にするとして
 printf("2つの整数を入力"); を
 printf("2つの整数を入力\n");
 とする。

以上で完成です。
文句の付け様の無い、美しい良いプログラムと思います。
    • good
    • 0

どうして「色々と間違えていますが」とわかったのでしょうか?



ちなみに「『else if』という構文」というのは不適切だし, この文脈で持ち出すのも実は妥当ではない>#1. 質問文のプログラムの「おかしさ」に引っ張られちゃったのかな.
    • good
    • 0

考え方は合っていますが、これだと多分コンパイルでエラーが出ますね。


elseの後の「{」に対応する閉じカッコ(「}」)が1つ足りません。

また、n1とn2が同じでなかった時に、elseのブロックの中にifを書いていますが、
実は「else if」という構文があります。
つまり、

if (...) {
  ...
} else {
  if (...){
    ...
  } else {
    ...
  }
}

という構文は、

if (...) {
  ...
} else if (...) {
  ...
} else {
  ...
}

と書くことができます。

また、else if() {}は、下記のようにelseの前にいくつも並べることができます。

if (条件A) {
  処理A
} else if (条件B) {
  処理B
} else fi (条件C) {
  処理C
} else {
  処理その他
}
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!