【发布时间】:2015-05-15 17:46:42
【问题描述】:
这是一个检查一个数和它的倒数是否相等的程序
#include<iostream>
#include<conio.h>
using namespace std;
int main()
{
int num,n,digit,j,newNum;
n=num;
j=1;
newNum=0;
cout<<"Enter a number\n";
cin>>num;
while(n>=1)
{
digit=n%10;
n=n/10;
digit=digit*j;
newNum=newNum+digit;
j=j*10;
}
cout<<"The reverse of given number is:"<<newNum<<endl;
if(num==newNum)
cout<<"The given number and its reverse are equal";
else
cout<<"The given number and its reverse are not equal";
getch();
}
` 这个程序接受一个数字作为输入,然后找到它的反向,然后检查反向是否等于数字。 每当我运行这个程序以及我输入的任何数字时,它都会给出相反的数字 1975492148。 谁能帮我找出原因吗?
【问题讨论】:
-
你的
n变量没有初始化,从cin读取后移动n=num -
非常感谢。真是个愚蠢的错误。
-
你在 while 循环中的步骤看起来不像我见过的任何“反转数字”的算法(你的意思是输入 '96' 应该给出输出 '69 '?) - 您是否尝试过使用调试器单步执行?
-
顺便说一句。当您将输入作为字符串处理时,相反会更容易
-
我现在已经试运行了,是的,你是对的,它没有提供所需的输出。它返回输入数字。为了使其工作,我需要知道如何计算数字中的数字编号,然后我可以修改我的算法并使其工作。