C语言实现输入整数的倒序和正序输出
·
1、整数逆序
- 键盘输入整数1342315,要求输出513243
int main()
{
int x;
int digit;
int result = 0;
scanf("%d",&x);
while( x>0 )
{
digit = x%10;//得到当前整数的个位数
result = result*10+digit;
printf("x=%d,digit=%d,result=%d\n",x,digit,result);
x /= 10;//去除个位数之后的数
}
printf("%d",result);
return 0;
}
结果:
- 键盘输入整数700,要求输出0 0 7(每个数之间有空格,最后一个数字后没有空格),上述方法不满足要求
int main()
{
int x;
int digit;
int result = 0;
scanf("%d",&x);
while( x>0 )
{
digit = x%10;//得到当前整数的个位数
printf("%d ",digit);
if( x>9 )
{
printf(" ");
}
x /= 10;//去除个位数之后的数
}
return 0;
}
结果:
2、整数正序
- 两次逆序,只适用于数字末尾没有0的情况
int main()
{
int x;
int t = 0;
scanf("%d",&x);
while( x>0 )
{
int d = x%10;//得到当前整数的个位数
t = t*10+d;
x /= 10;
}
printf("x=%d,t=%d\n",x,t);
x = t;
while( x>0 )
{
int d = x%10;//得到当前整数的个位数
printf("%d",d);
if( x>9 )
{
printf(" ");
}
x /= 10;
}
return 0;
}
结果:
错误结果:
- 一次输出
int main()
{
int x;
int mask = 1;
scanf("%d",&x);
int t = x;
while( t>9 )
{
t /= 10;
mask *= 10;
}
printf("%d\n",mask);
while( mask>0 )
{
int d = x/mask;
printf("%d",d);
if( mask>9 )
{
printf(" ");
}
x %= mask;
mask /= 10;
}
return 0;
}
结果:
更多推荐
所有评论(0)