给你个思路吧,代码自己敲敲。
(1)一个巧妙判断几位数的方法:
int i = 12345;
//例如数字是12345
char buf[6];
itoa(i, buf, 10);
//把i以10进制转化成字符串,并存放在buf里面,如果没有itoa库函数,也可以sprintf(buf, "%d", i);
然后strlen(buf)就可以得到该数字是几位数了。
(2)每一位数字的求法:
万位:i / 10000结果就是万位,如:52345 / 10000 = 5;
千位:i % 10000 / 1000结果就是千位,如52345 % 10000 = 2345, 2345 / 1000 = 2;
百位:i % 10000 % 1000 / 100结果就是百位,如52345 % 10000 = 2345, 2345 % 1000 = 345, 345 / 100 = 3;
十位:i % 10000 % 1000 % 100 / 10,如52345 % 10000 = 2345, 2345 % 1000 = 345, 345 % 100 = 45, 45 / 10 = 4;
个位:i % 10000 % 1000 % 100 % 10结果就是个位了。
(3)得到每一位数之后,逆序输出不用说了吧?