一道C++题目,求解答

题目描述

3个人比饭量大小,每人说了两句话。
A说:B比我吃得多,C和我吃得一样多。
B说:A比我吃得多,A也比C吃得多。
C说:我比B吃得多,B比A吃得多。
事实上饭量越小的人讲对的话越多。请编程按饭量的大小输出3个人的顺序。

输入描述

输出描述

三个字母,按饭量从小到大的顺序排列。字母间用一个空格隔开。

不要直接输出!!

#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;
}
温馨提示:内容为网友见解,仅供参考
无其他回答

一道C++的函数选择题 要求详细解答
首先 答案是B 为什么?因为,c++的规定就是,当函数的参数是值类型的时候,传递的是值,而不是地址,所以会为这个传来的值 新分配一个地址单元。在这里的实际参数a本来已经有一个地址单元了,然后根据上面这个c++的规定,所以会为a的值另外分配一个地址单元,变量名是w。不过 这个“&”符号你要去学...

C++考试题 求解答
2. 答案是C c.基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数(这个不懂)这个就是虚函数的特性,只要派生类的函数与基类的函数同名、同原型,自动为虚函数,d.派生类的虚函数与基类的虚函数具有不同的参数个数和类型(这个求解释)这个如果同名不同参数(不同原型),这个是重载...

一道C++题目,求解答
内联函数不是在调用时发生控制转移,而是在编译时将函数体嵌入在每一个调用处。因此加快了执行速度,因为调用函数的时候不需要在到函数定义的所存内存寻找函数。编译时,类似宏替换,使用函数体替换调用处的函数名。这个就能解决你的问题了。重载函数:为方便使用,C++允许在同一范围中声明几个功能类似的同...

C\\C++问题(基础),望高手解答,(回答完整者额外加20~50币),具体在...
1、一串数据怎么强制转换?可以将一串数据的起始地址 强制转换为结构体的指针。2、(int)a+6-c是强制转换a还是a+6-c ? (int)(a+6-c)是不是转换a+6-c?(int)a+6-c是强制转换a。 (int)(a+6-c)是转换a+6-c,转换计算结果 问题2:这7个字符的地址是强制固定的, 编译器在编译链接时...

计算机程序设计语言C++题目,求思路和结果
第一个知识点是逗号运算符。(c=a++, b+++a)的结果是先计算c=a++,然后使用b+++a的值作为最终结果。三个+放在一起,那一定是一个+号,和一个自增运算符++放在一起了,至于具体怎么解释需要知道运算符优先级。大多数运算符是从左到右,所以应该解释为(b++) + a。所以,c=a++使得c=0,a...

c++关于求方差、标准差的问题,求解答!
p[z]=(1.0\/n*(pow(k[z],2)));这里是1.0,不然直接用1除的话,小数全部都会转变成0,就得不到答案了 还有最重要一点,数组是从0开始到n-1,不是从1开始到n

求解答,c++问题,看不懂样例!!!
样例是这样的:三分钟或以内花费:base = 2 三分钟以上每分钟花费:above = 1 你拥有的钱:total = 4 很明显,用 base 的 2 块钱打 3 分钟电话比 above 的一块钱一分钟划算,所以把所有的钱都用来打三分钟的电话能发挥最大价值,一共有 4 块钱,打两个三分钟,就可以打 6 分钟,所以输出...

C++程序题,求大神解答,谢谢
随机个种子,随机显示1-6的数字;每次的点数,存在数组中;求总和。从字面上理解,你这个x ,应该是1-6间的数字。那就如果点数大于x时,i+1;最后用i\/n 是所求概率

C++问题求解答
第一题,p,q是指针,开始的时候p指向j,q指向k,然后p=q也就是p指向了q指向的内存,也就是说p和q这时都指向了q指向的k,然后(*p)++是p指向的数值加1,也就是k+1.所以输出的*q和*p是相同的,也就是k的值,也就是2 所以应该选B 第二题,先看B,字符串是不能直接这么赋值的,除了...

求解答这道C++问题(完全素数)
作为一个素数 在n>1情况下(至少两位数) 其个位数只能是 1 3 7 9中的一个(偶数自然不是质数,而是5的话 可以被5整除 也不是质数)这样程序可以简化为 include <iostream>#include <cmath>using namespace std;bool isPrime(int v){int i;\/\/特制质数判断函数,只判断奇数 因为不可能有v是偶数...

相似回答
大家正在搜