0

これは、この回答に対するフォローアップの質問です。任意に選択された 3 つの数値の特定の定義済みセットに一致するまで、3 つの乱数のセットを生成するループを構築しようとしています。

私はまだ、プログラムが乱数を任意の順序で受け入れるために使用する演算子を見つけようとしていますが、結果はありません。

私はあなたにしようとしました

!(first==one && second==two && third==three)

しかし、C ++では機能しないようです。ご回答有難うございます。

4

1 に答える 1

2

あなたが試した条件は、 、 、およびがfirst、、およびと同じ特定の順序であることを意味します。6 つの順列すべてを試すこともできますが、それではかなり読みにくいプログラムになってしまいます。より良い解決策は、次のようにベクトルに値を追加し、それらを並べ替えてから、等しいかどうかを比較することです。secondthirdonetwothree

vector<int> a;
a.push_back(first);
a.push_back(second);
a.push_back(third);
vector<int> b;
b.push_back(one);
b.push_back(two);
b.push_back(three);
sort(a.begin(), a.end());
sort(b.begin(), b.end());
if (a == b) ... // values match

ideoneのこのスニペットへのリンクを次に示します。

于 2012-08-29T16:42:07.947 に答える