此 C++ 代码始终提供相同的输出
this C++ code always gives same output
这是一个检查数字及其倒数是否相等的程序
#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=num;
的行为是 未定义。这是因为此时 num
尚未初始化。
您随后在程序中进一步使用 n
作为您的 while
条件。这不会有好下场。
#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();
}
这是一个检查数字及其倒数是否相等的程序
#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=num;
的行为是 未定义。这是因为此时 num
尚未初始化。
您随后在程序中进一步使用 n
作为您的 while
条件。这不会有好下场。
#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();
}