#include<iostream>
#include<math.h>
using namespace std;
int F(int a)
{
int i=0;
a=a/10;
return a;
}
int main()
{
int n,m,sum=0,i=0;
cout<<"plaese input a number:"<<endl;
cin>>n;
while(n>0)
{
n=F(n);
i++;
}
while(n>0)
{
m=n%10;
sum+=m*pow(10,i--);
n=F(n);
}
cout<<sum+n<<endl;
}
请高手帮我看看这段代码有什么问题。。。目的是求一个数的反序。再和原来的数相加。如输入1234 则输出 1234+4321的结果。
#include<iostream>
#include<math.h>
using namespace std;
int F(int a)
{
int i=0;
a=a/10;
return a;
}
int main()
{
int n,m=0,sum=0,i=0;
cout<<"plaese input a number:"<<endl;
cin>>n;
i=n;
while(n>0)
{
m=m*10+n%10;
n=F(n);
}
cout<<i<<"+"<<m<<"="<<m+i<<endl;
}
这段程序经过第一个while循环以后,
while(n>0)
{
n=F(n);
i++;
} n值变为0了,所以第二段while不会执行,所以不会得到你想要的结果。
首先你的程序进行这个循环之后
while(n>0)
{
n=F(n);
i++;
}
n的结果就成为了0;
那么它就不会进行后面的那个循环
while(n>0)
{
m=n%10;
sum+=m*pow(10,i--);
n=F(n);
}
那么相加之后由于sum的初始值是0,所以相加之后的结果是0
不会是你想要的结果!!!
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!