C ++代码的解释

时间:2016-02-19 17:54:53

标签: c++ magic-numbers

我目前正在开发一个程序,该程序输出一个三位整数的数字1089(即幻数),该数字的第一个数字大于它的最后一个数字。我输入了一些代码,但是没有收到1089,而是我收到891.有人可以提供一些解释原因。

cell.setHorizontalAlignment("center");

1 个答案:

答案 0 :(得分:0)

尝试编写一个函数来处理这个问题,这样你的代码就更清晰了(它也会让人们更容易帮助你!)

#include <iostream> 
#include <cmath>
using namespace std;

int reverseDigit(int num); // For example purposes

int _tmain(int argc, _TCHAR* argv[])
{
    int Number1,
    Number2,
    temp1,
    temp2,
    Result;

    cout << "Enter the number 412: ";
    cin >> Number1;

    temp1 = reverseDigit(Number1);

    temp1 = Number1 - temp1;

    cout << "Enter the number 198: ";
    cin >> Number2;

    temp2 = reverseDigit(Number2);

    Result = temp1 + temp2; 

    cout << "The magic number is: " << Result << endl; 

    return 0; 
}

int reverseDigit(int num) 
{
    int reverseNum = 0;
    bool isNegative = false;

    if (num < 0)
    {
        num = -num;
        isNegative = true;
    }

    while (num > 0)
    {
        reverseNum = reverseNum * 10 + num % 10;
        num = num / 10;
    }

    if (isNegative)
    {
        reverseNum = -reverseNum;
    }

    return reverseNum;
}

我意识到你没有使用底片,所以如果你选择使用它,你可以删除那个位,你也可以扩展它...这就是说这将使实际的&#34;逆转过程&#34;更容易使用,改进和阅读。