C言語のプログラミングです
以下の実行結果ように, キーボードから整数を3つ 空白区切りで続けて入力すると, それらの値が:
- 全て等しい場合は「同じ」,
- 小さい順に入力された場合は「昇順」,
- 大きい順に入力された場合は「降順」,
- 上記以外の場合は「バラバラ」
って言う問題で、
int x, y, z;
printf("整数を3つ入力> ");
scanf("%d%d%d", &x, &y, &z);
if(x<=y<=z){
printf("昇順¥n");
}
else if(x>=y>=z){
printf("降順¥n");
}
else{
printf("バラバラ¥n");
}
ここまで書いたんですが全部昇順になります。
間違えているところを教えて下さい
No.5ベストアンサー
- 回答日時:
ANSI Common Lispみたいな極めて優秀な言語じゃないと、そういう比較の仕方って通常成り立たないんだよねぇ。
/* ここから */
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int x, y, z;
printf("整数を3つ入力> ");
scanf("%d%d%d", &x, &y, &z);
if ((x == y) && (y == z) && (z == x)) {
printf("同じ\n");
} else if ((x < y) && (y < z) && (x < z)) {
printf("昇順\n");
} else if ((x > y) && (x > z) && (y > z)) {
printf("降順\n");
} else {
printf("バラバラ\n");
}
return EXIT_SUCCESS;
}
/* ここまで */
だからついつい「x<=y<=z」みたいに書きたがるのは分かるんだけど、通常は許されない。
多分Lisp系言語以外だとそうそう認めてくれないんじゃないかなぁ。
No.6
- 回答日時:
コードを書かなくなってもう二十年近くなるので
最近のコンパイラだと、三評価を1度にしてくれるようなのも有るのかと思ったけどね
<<この部分は問題に書いてあったので間違えではないはずなのです>>
何の問題? <-テキストならテキスト名など具体名を書いてみて
コンパイラは何?
No.4
- 回答日時:
半角ブランク区切りなのであれば "%d%d%d" ではなく "%d %d %d" では?
あと、if(x<=y<=z)ではなくif(x<=y && y<=z)などと記すのでは?
参考まで。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 割られる整数と割る整数を受け取って、商と余りを出力す 3 2022/07/05 10:23
- C言語・C++・C# C言語階乗の総和を求める 2 2023/03/04 23:31
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- C言語・C++・C# 至急お願いします。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分母 3 2022/07/19 17:09
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分 1 2022/07/19 17:03
- C言語・C++・C# 至急教えてください! プログラミングの問題です! お願いします! 出力2と全く同じ出力をするように、 2 2022/06/22 23:10
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 malloc関数を使ってください!お願いします! 最 1 2022/07/21 09:28
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
10個出力で改行したいのですが...
-
printf で二進表示を行いたい。
-
コマンドプロンプトがすぐ消える
-
C言語で四則演算を使って結果が...
-
CTRL+Dでループを抜けるには
-
switch分のケースを範囲数?に...
-
文字と数字の判定について
-
unsigned int型について
-
C言語で、「自然数nを入力し、n...
-
getcharの連続について
-
入力したお金の金額からお札の...
-
8人分のテストの点数を入力し、...
-
int型 00 を表示するのに0とな...
-
C言語で 選択肢: |?| |?| |?| 1...
-
数当てゲームを作っているのですが
-
【プログラム】2の倍数で表示非...
-
アドレスの比較について
-
C言語プログラミングで「コマン...
-
C言語の数値入力
-
改行について 1行に何個かづ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
10個出力で改行したいのですが...
-
既約分数の表示プログラム
-
printf で二進表示を行いたい。
-
8人分のテストの点数を入力し、...
-
printf( " %2d", p * q );
-
strcmp
-
CTRL+Dでループを抜けるには
-
4の倍数を論理演算で表す。。
-
%P と %X の違い
-
【C言語教えてください】sin波...
-
c言語でAからZまでを表示する...
-
cshの文字列操作(0埋め)
-
万年カレンダーのC言語プログラ...
-
コマンドラインに出力した文字...
-
scanfに文字が入力されたときに...
-
ホームページをC言語で作りたい...
-
改行について 1行に何個かづ...
-
コンパイルエラーについて
-
台形の面積を求めるプログラム
-
なぜgccはstdio.hをインクルー...
おすすめ情報