#include <iostream>
using namespace std;
int main(){
int A,B,C;
int a,b,c;
a=((B>A)+(C==A));
b=((A>B)+(A>C));
c=((C>B)+(B>A));
for(A=1;A<=3;A++)
for(B=1;B<4;B++)
for(C=1;C<4;C++)
if(((A>B&&a<b)||(A==B&&a==b)||(A<B&&a>b))
+((A>C&&a<c)||(A==C&&a==c)||(A<C&&a>c))
+((B<C&&b>c)||(B>C&&b<c)||(B==C&&b==c))==3)
cout<<"A的饭量是:"<<A<<a<<endl;
cout<<"B的饭量是:"<<B<<b<<endl;
cout<<"C的饭量是:"<<C<<c<<endl;
return 0;
}
为什么输出结果是:A的饭量是:30
B的饭量是:42
C的饭量是:41
这显然错了啊!可是我就是不明白为什么,请那位大牛帮忙看一下,这个有点浪费时间的,非常抱歉……
3个人比饭量大小,每人说了2句话:
A说:B比我吃得多;C和我吃得一样多。
B说:A比我吃得多;A也比C吃得多。
C说:我比B吃得多;B比A吃得多。
事实上饭量越小的人讲对的话越多,并且当饭量相等时,说对的话也相等。
请编程依次输出A、B、C的饭量大小
抱歉!刚才题目没写完整。