• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:if文を条件演算子に書き換えについて・・・)

if文を条件演算子に書き換えで三つの整数値の最大値を求める

このQ&Aのポイント
  • 条件演算子を使用して、三つの整数値の最大値を求める方法について教えてください。
  • 条件演算子を使って、読み込んだ三つの整数値の最大値を表示するプログラムを作りたいです。
  • if文を使わずに、条件演算子だけを用いて三つの整数値の最大値を求める方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
noname#77845
noname#77845
回答No.3

#1、2です。 間違えました。 max = n1; if (n2 > max) printf("最大値は%dです。", (n2 > n3) ? n2 : n3); else printf("最大値は%dです。", (n3 > max) ? n3 : max); return(0); }

Mono_777
質問者

お礼

回答ありがとうございます。 条件演算子の使い方を間違っていて難しく考えていたんですね。 とても丁寧な説明で理解することが出来ました。 本当にありがとうございましたm(_)m

その他の回答 (2)

noname#77845
noname#77845
回答No.2

#1です。 問題のとおり、if文を条件演算子に変更しましょう。 max = n1; max = n2 > max ? n2 : max; max = n3 > max ? n3 : max; どうしても、前の補足のように使用したいなら、 max = n1; if (n2 > max) printf("最大値は%dです。", (n2 > n3) ? n2 : n3); else if (n3 > max) printf("最大値は%dです。", n3); return(0); } でどうでしょう? 条件演算子の使い方が間違っています。 条件 ? 式1 : 式2; を × (n2 > max) ? max = n2 : n1; ○ (n2 > max) ? n2 : n1; にすれば、n2かn1が返ります。 式に代入したいときは、 max = n2 > max ? n2 : max; の様にすると、n2か前のmaxの値が返ります。

noname#77845
noname#77845
回答No.1

同じ結果を出すことができなかったソースコードを補足してください。

Mono_777
質問者

補足

申し訳ありません。 条件演算子 a ? b : c 自分なりに解いてみたのですが解決しない状態です・・・ #include <stdio.h> int main(void) { int n1, n2, n3, max; puts("二つの整数を入力してください:"); printf("整数1:"); scanf("%d", &n1); printf("整数2:"); scanf("%d", &n2); printf("整数3:"); scanf("%d", &n3); max = n1; if (n2 > n1) printf("最大値は%dです。", (n2 > max) ? max = n2 : n1); else if (n3 > n2) printf("最大値は%dです。", (n3 > max) ? max = n3 : n2); return(0); }