C言語関係掲示板

過去ログ

No698 三つの整数値を読み込んで、全て等しければ

[戻る] [ホームページ]
No.8210

質問、疑問
投稿者---ゆゆゆ(2003/07/10 12:30:25)


今、C言語の勉強しているのですが分からないところがあります。三つの整数値を読み込んで、全て等しければ「三つの値は等しいです。」と、いずれか二つか等しい場合は「二つの値が等しいです。」と、そうでなければ「三つの値は異なります。」と表示するプログラムをif文で作るんですが、 if (a == b == c) puts("三つの値は等しいです。"); としてはなぜ出来ないのでしょうか??三つ等しい値にしても、二つの値が等しいとでてきてしまいます。論理AND演算子を使わないとできないのでしょうか。

No.8211

Re:質問、疑問
投稿者---YuO(2003/07/10 12:49:49)


> if (a == b == c) puts("三つの値は等しいです。"); としてはなぜ出来ないのでしょうか??

a == b == cは,(a == b) == cに等しく,==演算子は,
・値が等しいときは1
・等しくないときは0
を返します。
つまり,(a == b)は0か1のどちらかの値をとり,それがcに等しいかを判断しています。


> 論理AND演算子を使わないとできないのでしょうか。

そのとおり。


No.8214

Re:質問、疑問
投稿者---たいちう(2003/07/10 13:06:35)


こういうのはどう?
int n = (a==b) + (b==c) + (c==a);