注册 登录
编程论坛 C++教室

输入一个数 打印出来

daniel2008 发布于 2009-09-24 19:39, 550 次点击
#include <iostream>
using namespace std;
int main()
{int n,m=0,r,t=0;
cin>>n;
while (n)
{r=n%10;
cout<<(char)(r+'0')<<' ';
m++;
t=t*10+r;
n=n/10;}
cout<<endl<<"#="<<m<<endl;
cout<<"resersed n="<<t<<endl;
return 0;
}
这里的cout<<(char)(r+'0')<<' ';
实现的是什么,我想它顺序输出,可结果是倒序输出,‘0’的作用是什么
请指教!
1 回复
#2
shl3052009-09-24 22:11
首先r=n%10,r必定是0-9之间的数,'0'+r是r对应的字符,如数字1对应字符 '1',9对应 '9',
就是从'0'开始加上偏移量,因为ASII码里'0'、‘1’、‘2’...是数序排列的
倒序输出是容易实现的,顺序输出不太容易实现,可以用下面几个方法
1、将倒序得到的结果保存下来,再按照顺序打印,这个方法比较土
2、想办法得到n是几位数,然后从不大于n的10的乘方数开始除,每次小10倍
     如,n= 1234,从1000开始,n先处以1000,再处以100、再10...
3、递归,这个写起来最简洁
1