打印用户给出的反转数字的算法?

Bug*_*ter 3 c++ algorithm

我用C++编写了一个小程序,提示用户输入,用户给出一个数字,然后计算机显示反转的数字.

例如:17变为71. 123变为321.

这是该计划:

#include <iostream>
#include <string>  //for later use.
using namespace std;

int rev(int x)
{
    int r = 0;
    while(x)
    {
        r = (r*10) + (x%10);
        x = x/10;
    }
    return r;
}

int main()
{
    int nr;
    cout << "Give a number: ";
    cin >> nr;
    rev(nr);
    cout << nr; 
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

程序的最终结果:打印相同的数字,功能无效.我究竟做错了什么?我尝试了几种解决方案但无济于事.

N_A*_*N_A 7

你需要rev(nr);改为nr = rev(nr);

或者将您的功能更改为:

void rev(int& x)
{
    int r = 0;
    while(x)
    {
        r = (r*10) + (x%10);
        x = x/10;
    }
    x = r;
}
Run Code Online (Sandbox Code Playgroud)

  • 第一种解决方案更好.除非你有某些理由,否则我不建议使用第二种解决方案. (3认同)