谁的饭量大

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;
}

 运行结果:

谁的饭量大