用c++输入一个数字,并返回数字反转后的数字。例如,给定数字7631,应返回1367。
这是我写的程序
#include
using namespace std;
int main()
{
int i, c;
while (cin >> i) {
if (i == 0)
cout << 0;
else if (i <= -1)
break;
else
{
while (1)
{
if (i != 0)
{
c = i % 10;
if (c!=0)
cout << c ;
i = i / 10;
}
else
break;
}
cout << endl;
}
}
return 0;
}
我个人觉得没有问题,但是在学校的网站上面提交总是显示答案错误,想请教一下大家是为什么。
这是我们学校网站上面的题目原图。
可以试试这个写法
#include <iostream>
using namespace std;
int main()
{
int num;
int reversed_num = 0;
cout << "请输入一个数字:";
cin >> num;
while (num > 0) {
reversed_num = reversed_num * 10 + num % 10;
num /= 10;
}
cout << reversed_num << endl;
return 0;
}
以下答案引用自GPT-3大模型,请合理使用:
有可能你的代码存在问题,但是因为你没有给出实际的示例和题目,我们无法给出更详细的帮助。建议你把实际的示例和题目给出来,我们可以帮忙给你看看到底出了什么问题。
如果我的回答解决了您的问题,请采纳我的回答
if (c!=0)
cout << c ;
为啥要加这一句啊?
比如输入1201,输出应该是1021,那你加了这个判断,岂不是要丢失中间的0,输出121了?
不知道你这个问题是否已经解决, 如果还没有解决的话:可以加入一个判断,如果已经输出过不为0的数,则无需判断后面的数是否为0 。
作用就是除去翻转后位于头部的0。