这是一个检查数字及其反转是否相等的程序
#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。 任何人都可以帮我确定原因吗?
答案 0 :(得分:1)
作业n=num;
的行为是未定义。这是因为num
此时尚未初始化。
然后,您可以在程序中稍后使用n
作为while
条件。这不会很好。
答案 1 :(得分:1)
#include<iostream>
#include<conio.h>
using namespace std;
int main()
{
int num;
cout<<"Enter a number\n";
cin>>num;
int n = num;
int rev = 0;
while( n >= 1 )
{
int rem = n%10;
rev = (rev*10) + rem;
n=n/10;
}
cout<<"The reverse of given number is:"<<rev<<endl;
if(num==rev)
cout<<"The given number and its reverse are equal" << endl;
else
cout<<"The given number and its reverse are not equal" << endl;
getch();
}