宿題でifと不等記号( < と>)のみを使って、3つの入力された整数の中から最大数と最小数を求めるプログラムを作っているのですが、コンパイルには成功してもいざ実行すると、恐らくエラーが起きていて、数字を入力しても何も出来ません。
下記の文字列はそのifの所のみを貼ったものですが、何が間違っているのでしょうか?
ちなみにelseとかは使えません m(_ _)m
純粋にifと不等記号のみしか使ってはダメみたいです。
if( num1 > num2 > num3 ) {
printf( "Smallest is %d\n", num3 );
printf( "Largest is %d", num1 );
} /* end if */
if( num1 > num3 > num2 ) {
printf( "Smallest is %d\n", num2 );
printf( "Largest is %d", num1 );
} /* end if */
if( num2 > num1 > num3 ) {
printf( "Smallest is %d\n", num3 );
printf( "Largest is %d", num2 );
} /* end if */
if( num2 > num3 > num1 ) {
printf ( "Smallest is %d\n", num1 );
printf ( "Largest is %d", num2 );
} /* end if */
if( num3 > num1 > num2 ) {
printf ( "Smallest is %d\n", num2 );
printf ( "Largest is %d", num3 );
} /* end if */
if( num3 > num2 > num1 ) {
printf ( "Smallest is %d\n", num1 );
printf ( "Largest is %d", num3 );
} /* end if */
No.3ベストアンサー
- 回答日時:
数学的に
num1 > num2 > num3
が成り立つ時というような意味で
if(num1 > num2 > num3) { … }
とは使えません
左から右に評価される段階で
(num1 > num2) > num3
( 0 or 非0 ) > num3
のように評価されて、意図する所とは違ったものになってしまいます。
例えば、num1 が一番大きいという場合には、
(num1 > num2) && (num1 > num3)
というような条件になると思います。
No.5
- 回答日時:
ご質問のコードについての回答ではありませんが、考え方としてこんなのもある
というところを…
・変数をもうひとつ使える
・変数の内容を入れ替えてもかまわない
という条件が許されれば、3つの if 文で num1~num3 の内容を大きさ順に
並べ替えることが出来ます。あとは num1 と num3 を出力すればOK。
宿題ということなので具体例は控えますが、いかにして手を抜くかというのも
プログラミングの面白さですから、こういう方法を考えてみるのも勉強になると
思います。
No.4
- 回答日時:
こんな感じでしょうか。
#include <stdio.h>
int main (void)
{
int num1, num2, num3;
printf(" 入力(整数) ");
scanf("%d %d %d", &num1, &num2, &num3);
if(num1 > num2){
if(num2 > num3){
printf("\n 最大値 %d", num1);
printf("\n 最小値 %d", num3);
return 0;
}
if(num1 > num3){
printf("\n 最大値 %d", num1);
printf("\n 最小値 %d", num2);
return 0;
}
printf("\n 最大値 %d", num3);
printf("\n 最小値 %d", num2);
return 0;
}
if(num2 > num3){
if(num1 > num3){
printf("\n 最大値 %d", num2);
printf("\n 最小値 %d", num3);
return 0;
}
printf("\n 最大値 %d", num2);
printf("\n 最小値 %d", num1);
return 0;
}
printf("\n 最大値 %d", num3);
printf("\n 最小値 %d", num1);
return 0;
}
No.1
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 質問です 下記のコードを分かりやすく解説お願いします 初心者です #include ‹stdio.h 3 2022/05/26 22:03
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# C言語でif文が予想と違う動きをする件について7 4 2023/03/20 00:26
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- JavaScript JAVASCRIPT 2 2022/04/15 15:10
- UNIX・Linux 次の要件を満たすにはどのように修正したらよろしいでしょうか 1 2022/11/24 20:57
- UNIX・Linux Linuxのbash環境下です。 1 2022/11/27 12:31
- C言語・C++・C# C pointer? or... 2 2022/03/29 00:47
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- C言語・C++・C# C言語(構造体) 3 2022/07/05 20:08
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語 エラー表示 break の位...
-
C言語階乗の総和を求める
-
C言語プログラミング
-
C言語・アルゴリズムの勉強法(...
-
構文エラー";"が型の前にあり...
-
for文
-
データ管理プログラムを作って...
-
分散を求めるプログラム
-
Cプログラムの条件文 if,els...
-
while文について、c言語...
-
最大値と最小値を表示したいの...
-
C言語 入力した数値の平均値の...
-
if-else文および標準演算子(*...
-
計算結果がlong型以上になる場...
-
Verilog HDLについて質問
-
2÷3などの余りについて
-
プログラミング初心者です。 Py...
-
信頼区間の1.96や1.65ってどこ...
-
寄り付きからぐわんぐわん値が...
-
「Aに対するBの割合」と「Aに対...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
構文エラー";"が型の前にあり...
-
for文の中にswitch文はいれられ...
-
#if 1 #elseの意味について
-
プログラミングで二番目に大き...
-
getcの改行判定
-
C言語プログラムが理解できなくて…
-
C言語 数字以外を入力させない...
-
配列を関数に渡す方法
-
配列を使って魔方陣
-
初心者です。for文、if文を使っ...
-
c言語for文
-
c言語で平均をだす
-
while文について、c言語...
-
scanf関数を用いての加減乗除%...
-
行列をべき乗させるプログラム
-
c言語プログラミングで1から100...
-
C言語階乗の総和を求める
-
scanfが実行されません
-
階乗のプログラム!!
-
C言語の二分法のプログラムにつ...
おすすめ情報