代码问题出在哪里?? 本题要求编写程序,对输入的一个整数,从高位开始逐位分割并输出它的各位数字。

输入格式:
输入在一行中给出一个长整型范围内的非负整数。
输出格式:
从高位开始逐位输出该整数的各位数字,每个数字后面有一个空格。
输入样例:
123456
输出样例:
1 2 3 4 5 6
#include <stdio.h>

int main()
{
int x, y, a=1, b;
scanf("%d", &x);
y=x;
if(x==0)
{
printf("0 ");
}
while(x>0)
{
x=x/10;
a=a*10;
}
// printf("%d\n",a);

a=a/10;
while(a>0)
{
b=y/a;
y=y%a;
a=a/10;
printf("%d ", b);
}

return 0;
}

第1个回答  2020-11-01
始终只有b被输出,逻辑我就不看了,题主需要明白一种思路,多位数拆分使用除法拆分每个位,2位数就用2个变量来存(2个元素数组也行),10位数就用10个变量存,例如拆分数字12
a=12
b=a/10 得十位数1
c=a%10 得个位数2
分别输出b和c即可得到题主所求,多位数亦如此
相似回答