質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

4回答

2177閲覧

C言語で三項演算子が機能しない?!?!

退会済みユーザー

退会済みユーザー

総合スコア0

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2016/04/09 11:09

編集2016/04/09 11:13

C

1#include <stdio.h> 2int main(void){ 3 int a, b, min, max; 4 scanf("%d%d", &a, &b); 5 min = a < b ? a : b; 6 max = b < a ? b : a; 7 8 printf("%d以上%d以下\n", min, max); 9 10 return 0; 11} 12

結果

1 /* scanf a */ 100 /* scanf b*/ 1以上1以下

minに受け取った値のうち小さい方を、maxに大きい方を代入したいのですが、できません!
おそらく三項演算子の部分が問題だと思うのですが、わかりません。
どうしたら実行できますか?!

min = a < b ? a : b;

min = (a < b) ? a : b;

に書き直したり、変数を初期化しても結果は同じでした。。。

環境は OSX(10.11), Atom, 標準ターミナル, gccです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

/* 大きいのが欲しいなら符号が逆では? */
max = b > a ? b : a;

投稿2016/04/09 11:19

takasima20

総合スコア7458

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/04/09 11:19

ありがとうございます!
guest

0

参考演算子の結果が期待通りでなかったら、条件を間違えているに決まっているじゃないですか。

max = b < a ? b : a;

aがbより大きければbというのがmaxですか?

投稿2016/04/09 11:16

otn

総合スコア84423

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/04/09 11:18

ありがとうございます! 見落としていました! >三項演算子の結果が期待通りでなかったら、条件を間違えているに決まっているじゃないですか。 とても参考になります!!! ありがとうございます!
guest

0

ベストアンサー

max = b < a ? b : a;で、aの方が大きかった場合にamaxにしたいのですよね。

評価式のabを入れ替えて、2項目と3項目も入れ替えてしまったら、元に戻ってしまいます。

投稿2016/04/09 11:16

編集2016/04/09 11:17
argius

総合スコア9388

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/04/09 11:17

ありがとうございます! 助かりました!
guest

0

scanf() の直後に printf()ab の中身を確認してみてください。

投稿2016/04/09 11:12

unau

総合スコア2468

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/04/09 11:14

回答ありがとうございます。 ちゃんと表示されました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問