我目前正在开发一个程序,该程序输出一个三位整数的数字1089(即幻数),该数字的第一个数字大于它的最后一个数字。我输入了一些代码,但是没有收到1089,而是我收到891.有人可以提供一些解释原因。
cell.setHorizontalAlignment("center");
答案 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;更容易使用,改进和阅读。