C++新手问题。。。。。各位大虾求教

来源:百度知道 编辑:UC知道 时间:2024/06/25 11:26:02
题目是输入一个数判断是几位数然后逆向输出该数。
代码如下:
#include"iostream.h"
void main()
{
int a,b=0;
cin>>a;
for(int i=0;i<10;i++)
{
if(a>0)
{
b=b*10+a%10;
a=a/10;
}
else
break;
}
cout<<i<<" "<<b;
}

为什么要限制a>0才执行呢··要是我想负数逆向输出该怎么写???

#include<iostream>
using namespace std;
void main()
{
int a,b=0;
int i;
int temp;
cin>>a;
if(a<0)
{
temp=-a;

}
else
temp=a;
for(i=0;i<10;i++)
{
if(temp>0)
{
b=b*10+temp%10;
temp=temp/10;
}
else
break;
}
if(a>=0)
cout<<i<<" "<<b;
else
cout<<i<<" "<<b<<"-"<<endl;
}

限制a>0是保证a/10后还有数存在

2楼的对了

要想知道为什么a>0
就要知道a=a/10的意思

a=a/10就是要输入的数依次降低一位
当a降到只有一位数时再a=a/10 时a就为0了

a>0就限定当a降到一位数后跳出循环。

直接把a、b定义成unsigned int不就行了

#include"iostream.h"
void main()
{
int a,b=0;
bool falg=flase;
cin>>a;
if(a<0)
{
a = -a;
flag = true;
}
for(int i=0;i<10;i++)