谁的饭量大
3个人比饭量大小,每人说了2句话。
A说:B比我吃得多,C和我吃得一样多。
B说:A比我吃得多,A也比C吃得多。
C说:我比B吃得多,B比A吃得多。
事实上饭量越小的人讲对的话越多。请编写程序按A、B、C的顺序输出3个人的饭量排名(排名越大,饭量越大)。
本题利用枚举法列出所有可能的情况,再利用关系表达式的返回值筛选出合理的情况。
#include <stdio.h>
int main()
{
int A, B, C;
int a, b, c;
for (A = 0; A < 3; A++)
{
for (B = 0; B < 3; B++)
{
for (C = 0; C < 3; C++)
{
a=(B>A)+(C==A);
b=(A>B)+(C<A);
c=(C>B)+(B>A);
if(A<B&&B<C&&a>b&&b>c)
{
printf("A:3\nB:2\nC:1\n");
}
else if(A<C&&C<B&&a>c&&c>b)
{
printf("A:3\nB:1\nC:2\n");
}
else if(B<A&&A<C&&b>a&&a>c)
{
printf("A:2\nB:1\nC:3\n");
}
else if(B<C&&C<A&&b>c&&c>a)
{
printf("A:3\nB:1\nC:2\n");
}
else if(C<B&&B<A&&c>b&&b>a)
{
printf("A:3\nB:2\nC:1\n");
}
else if(C<A&&A<B&&c>a&&a>b)
{
printf("A:2\nB:3\C:1\n");
}
}
}
}
return 0;
}
运行结果: