OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

{x = x>y ? x:y; return x;}

  • 困ってます
  • 質問No.196069
  • 閲覧数52
  • ありがとう数5
  • 気になる数0
  • 回答数5
  • コメント数0

お礼率 58% (109/185)

#include <iostream>
using namespace std;

inline int max(int x, int y){x = x>y ? x:y; return x;}

int main()
{
int num1, num2, ans;

cout << "2つの整数を入力して。\n";
cin >> num1 >> num2;

ans = max(num1, num2);

cout << "最大値は" << ans << "です。\n";

return 0;
}
の{x = x>y ? x:y; return x;}の部分の意味が解りません。
通報する
  • 回答数5
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.4
レベル14

ベストアンサー率 24% (612/2465)

inline int max(int x, int y){x = x>y ? x:y; return x;}
これを普通に関数で書くと

int max(int x, int y)
{
x = x>y ? x:y;
return x;
}

です。

x = 部分は右辺の結果が代入されます。これはわかりますよね。
x>y?x:y;
と書くと?より左にある条件式を判定し、その結果が真である場合は:で区切られた左側の値を、偽である場合は右の値を帰します。
x>yが真であればxを、偽であればyを返します。
それが、左辺値xに代入され、関数の戻り値として帰ります。

従って、2つの値をこの関数に入れると、大きいほうの値が帰ることになります。
お礼コメント
yosiyosi

お礼率 58% (109/185)

ありがとうございました。
投稿日時 - 2002-01-12 13:24:20
-PR-
-PR-

その他の回答 (全4件)

  • 回答No.1
レベル11

ベストアンサー率 60% (182/303)

「x = 条件 ? A : B」という文法は、if-else文の特殊な用法で、 if (条件) {  x = A; } else {  x = B; } と同値です。 したがって、「x = x>y ? x:y; return x;」は、以下の文と同値です。 if (x <= y) {  x = y; } return x; ...続きを読む
「x = 条件 ? A : B」という文法は、if-else文の特殊な用法で、
if (条件) {
 x = A;
} else {
 x = B;
}
と同値です。
したがって、「x = x>y ? x:y; return x;」は、以下の文と同値です。
if (x <= y) {
 x = y;
}
return x;
参考URL: 
お礼コメント
yosiyosi

お礼率 58% (109/185)

ありがとうございました。
投稿日時 - 2002-01-12 13:25:27


  • 回答No.2
レベル12

ベストアンサー率 48% (325/664)

finalanswerの回答に補足です。 >したがって、「x = x>y ? x:y; return x;」は、以下の文と同値です。 >if (x <= y) { > x = y; >} というのは、間を一段階抜かして書いてあります。 省略せずに書くと、… …以下の文と同値です。 if ( x > y ){  x = x; }else{  x = ...続きを読む
finalanswerの回答に補足です。

>したがって、「x = x>y ? x:y; return x;」は、以下の文と同値です。
>if (x <= y) {
> x = y;
>}
というのは、間を一段階抜かして書いてあります。

省略せずに書くと、…

…以下の文と同値です。
if ( x > y ){
 x = x;
}else{
 x = y;
}
return x;
しかし、最初の複文の中では何もやっていないので、この部分を省略し、
if (x <= y) { …

…となります。
お礼コメント
yosiyosi

お礼率 58% (109/185)

ありがとうございました。
投稿日時 - 2002-01-12 13:24:56
  • 回答No.3
レベル12

ベストアンサー率 48% (325/664)

>finalanswerの回答に補足です。 ああ、「さん」が抜けてしまった… finalanswerさん、ごめんなさい。
>finalanswerの回答に補足です。
ああ、「さん」が抜けてしまった…

finalanswerさん、ごめんなさい。
  • 回答No.5
レベル12

ベストアンサー率 40% (201/496)

三項演算子と言います ...続きを読む
三項演算子と言います
お礼コメント
yosiyosi

お礼率 58% (109/185)

ありがとうございました。
投稿日時 - 2002-01-12 13:23:51
このQ&Aで解決しましたか?
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ