3个人比饭量大小,每个人说了两句话。
A说:B比我吃得多,C和我吃得一样多。
B说:A比我吃得多,A也比C吃得多。
C说:我比B吃得多,B比A吃得多。
事实上饭量越小的人讲对的话越多。请编程按饭量的大小输出3个人的顺序。
#include <iostream>
using namespace std;
int main()
{
int A, B, C; //A,B,C实际饭量
int sumA, sumB, sumC; //A,B,C说话对的数
for (A = 1; A <= 3; A++)
for (B = 1; B <= 3; B++)
for (C = 1; C <= 3; C++)
{
sumA = (A < B) + (C == A);
sumB = (A > B) + (A > C);
sumC = (C > B) + (B > A);
if ((A > B) && (B > C) && (sumA < sumB) && (sumB < sumC))
cout << "饭量从大到小是:A,B,C" << endl;
if ((A > C) && (C > B) && (sumA < sumC) && (sumC < sumB))
cout << "饭量从大到小是:A,C,B" << endl;
if ((B > A) && (A > C) && (sumB < sumA) && (sumA < sumC))
cout << "饭量从大到小是:B,A,C" << endl;
if ((B > C) && (C > A) && (sumB < sumC) && (sumC < sumA))
cout << "饭量从大到小是:B,C,A" << endl;
if ((C > A) && (A > B) && (sumC < sumA) && (sumA < sumB))
cout << "饭量从大到小是:C,A,B" << endl;
if ((C > B) && (B > A) && (sumC < sumB) && (sumB < sumA))
cout << "饭量从大到小是:C,B,A" << endl;
}
return 0;
}