c语言中,输入一个数54321,如何将这个五位数拆开,比如将5赋给a,将4赋给b,如此类推。谢谢!

如题所述

分离每个位数存入栈,
int top = -1, n = 54321, stack[16];
while(n)
{
stack[++top] = n%10; //将最后一位存入stack

n /= 10; //去除最后一位

}
最后每个数都放在stack里,就可以按自己需要赋给别的变量追问

假如我任意输入一个数,我要取它的左边第一位,该如何实现?谢谢
还有while(n)是什么含义?
我要赋值最后一个数给a,该如何实现?

追答

while(n)就是while(n!=0)的意思,
n=54321,循环变成5432, 543, 54, 5.
想取最左边一位?
while(n%10)
n /= 10;

这样就可以了,表示当n除以10的余数不是0时,不断执行n = n/10(注意是整除)

追问

不是,我想想问比如把5432,543,54,5都放进栈里面,我怎样从栈里面使用这些数据?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-20
int main()
{
int a = 54321 / 10000;
int b = 54321 % 10000 / 1000;
int c = 54321 % 10000 %1000 / 100;
int d = 54321 % 10000 % 1000 % 100 / 10;
int e = 54321 % 10000 % 1000 % 100 %10;
return 0;
}追问

请问int e = 54321 % 10000 % 1000 % 100 %10;中的百分号什么含义,谢谢

追答

取模,也就是取余数。

追问

假如我随便输入一个n位数,我要取往左第一位数呢

追答

左边第一位?比如a是那个n位数。m为结果。
m = a;
while(m > 9)
{
m = m / 10;
}
printf("%d\n",m);
看看行吗?

第2个回答  2013-03-20
54321%10=1
54321/10%10=2
54321/100%10=3
楼主依此类推
希望对楼主有帮助 忘采纳追问

54321%10=1
54321/10%10=2
54321/100%10=3
其中等于1,等于2,等于3什么意思?

追答

模除 取余 54321模除10不是得1吗。。。

相似回答