中易网

C++高手请看看。。。。

答案:3  悬赏:0  
解决时间 2021-04-27 16:04
  • 提问者网友:℡她的他i☆
  • 2021-04-27 12:39

#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的结果。

最佳答案
  • 二级知识专家网友:萌萌哒小可爱
  • 2021-04-27 13:22

#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;
}

全部回答
  • 1楼网友:万千宠爱
  • 2021-04-27 15:17
这段程序经过第一个while循环以后, while(n>0) { n=F(n); i++; } n值变为0了,所以第二段while不会执行,所以不会得到你想要的结果。
  • 2楼网友:萝莉姐姐鹿小北
  • 2021-04-27 14:56

首先你的程序进行这个循环之后

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

不会是你想要的结果!!!

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息