**已关闭。**此问题需要debugging details。当前不接受答案。
编辑问题以包括desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
4天前关闭。
Improve this question
我想比较两个数字的大小,并反向打印较大的值。但是,输出值与我预期的不同。
#include<iostream>
int main() {
int a, b;
int big;
std::cin >> a>>b;
if (a > b)
big = a;
if (a <= b)
big = b;
std::cout << "input" << a <<" "<< b<<"\n";
std::cout << "bigger"<<big << "\n";
int q, w, e;
e = big % 10;
w = (big % 100)-e;
q= big - (e)-(w * 10);
std::cout << e << w << q;
return 0;
}
1.这段代码从用户那里接收两个整数并将它们存储在变量a和b中。
1.它比较两个值,并使用if语句将较大的值存储在名为“bigger”的变量中。
1.将除以10的余数存储在q中
除以100减去q的余数存储在w中
从存储在'bigger'中的值中减去q和10乘以w,并将结果存储在'e'中。
1.不带空格的e,w,q的输出值。
输入123 456
输出123 456 input123456 bigger456 654
但这是结果。123 456 input123 456 bigger456 650-50
我搜索了这个问题。this question它显示了如何用内置函数向后打印数字。所以我问了新的问题。
2条答案
按热度按时间dvtswwa31#
您可以使用
std::to_string
将数字转换为字符串。然后
std::reverse
反转字符串。fhity93d2#
计算w存在问题。在当前代码中,w计算为(big%100)- e,它只在e总是个位数时有效。然而,如果e是两位数(即如果big的最后两位相同),则w将为负。要解决此问题,您可以修改w的计算,以提取big的最后两位数字并从中减去e。
试试这个