c语言编程题:输入一个长整形数,从高位开始逐步输出,例如输入123456,输出1,2,3,4,5,

2024年11月22日 09:45
有3个网友回答
网友(1):

#include 
#include 
#include 

int main(int argc, char ** argv) {

void print_num(long number);

print_num(123456);

return 1;
}

void print_num(long number) {

int digits = floor(log10(abs(number))) + 1;  // 求整数的位数
int array[digits];
int i = digits - 1;

while (number) {        // 提取各位数字(个位开始),存于数组中
array[i] = number % 10;
number /= 10;
i--;
}

for (i = 0; i < digits; i++) {         // 从数组中打印出数字

if (i == digits - 1)
printf("%d", array[i]);    // 最后一个数字不需要逗号分隔
else 
printf("%d, ", array[i]);

}
}

输出结果为:

网友(2):

数的分解问题
建立一个链表存每位数
建立循环:每次求10的余数,得到当前位,再除10取整
得到的链表是倒序的,你只要倒序输出就好了

网友(3):

除以10000,取余,再除以1000,取余,以此类推。