用c++输入一个数字,并返回数字反转后的数字

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

我个人觉得没有问题,但是在学校的网站上面提交总是显示答案错误,想请教一下大家是为什么。
这是我们学校网站上面的题目原图。

img

可以试试这个写法

#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。