谁的饭量大

本文通过编程方式解决了一个有趣的逻辑谜题,三个人通过陈述自己与他人饭量的比较来确定各自的饭量排名。使用枚举法遍历所有可能的情况,并结合条件筛选出正确的排名顺序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 运行结果:

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值