![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
一道C++题目,求解答 10
题目描述3个人比饭量大小,每人说了两句话。A说:B比我吃得多,C和我吃得一样多。B说:A比我吃得多,A也比C吃得多。C说:我比B吃得多,B比A吃得多。事实上饭量越小的人讲...
题目描述
3个人比饭量大小,每人说了两句话。
A说:B比我吃得多,C和我吃得一样多。
B说:A比我吃得多,A也比C吃得多。
C说:我比B吃得多,B比A吃得多。
事实上饭量越小的人讲对的话越多。请编程按饭量的大小输出3个人的顺序。
输入描述
输出描述
三个字母,按饭量从小到大的顺序排列。字母间用一个空格隔开。
不要直接输出!! 展开
3个人比饭量大小,每人说了两句话。
A说:B比我吃得多,C和我吃得一样多。
B说:A比我吃得多,A也比C吃得多。
C说:我比B吃得多,B比A吃得多。
事实上饭量越小的人讲对的话越多。请编程按饭量的大小输出3个人的顺序。
输入描述
输出描述
三个字母,按饭量从小到大的顺序排列。字母间用一个空格隔开。
不要直接输出!! 展开
1个回答
展开全部
#include <iostream>
using namespace std;
int main()
{
int A, B, C; //定义3个人的饭量
int As, Bs, Cs; //定义3个人说的话
int AnsA, AnsB, AnsC; //用于记录最后的答案
for (A = 1; A <= 3; A++)
for (B = 1; B <= 3; B++)
for (C = 1; C <= 3; C++)
{
As = (B>A) + (C==A); //A讲的话
Bs = (A>B) + (A>C) ; //B讲的话
Cs = (C>B) + (B>A) ; //C讲的话
if(!(A <= B && As <= Bs || A <= C && As <= Cs ||
B <= A && Bs <= As || B <= C && Bs <= Cs ||
C <= A && Cs <= As || C <= B && Cs <= Bs))
//如果不存在一个人饭量比另一个人小,说对的话也不比另一个人多,则记录下这时的解
{
AnsA = A;
AnsB = B;
AnsC = C;
}
}
//输出部分省略
return 0;
}
using namespace std;
int main()
{
int A, B, C; //定义3个人的饭量
int As, Bs, Cs; //定义3个人说的话
int AnsA, AnsB, AnsC; //用于记录最后的答案
for (A = 1; A <= 3; A++)
for (B = 1; B <= 3; B++)
for (C = 1; C <= 3; C++)
{
As = (B>A) + (C==A); //A讲的话
Bs = (A>B) + (A>C) ; //B讲的话
Cs = (C>B) + (B>A) ; //C讲的话
if(!(A <= B && As <= Bs || A <= C && As <= Cs ||
B <= A && Bs <= As || B <= C && Bs <= Cs ||
C <= A && Cs <= As || C <= B && Cs <= Bs))
//如果不存在一个人饭量比另一个人小,说对的话也不比另一个人多,则记录下这时的解
{
AnsA = A;
AnsB = B;
AnsC = C;
}
}
//输出部分省略
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询