c语言编程题:输入一个长整形数,从高位开始逐步输出,例如输入123456,输出1,2,3,4,5,
发布网友
发布时间:2023-07-13 20:36
我来回答
共3个回答
热心网友
时间:2023-09-18 10:29
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
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]);
}
}
输出结果为:
热心网友
时间:2023-09-18 10:30
数的分解问题
建立一个链表存每位数
建立循环:每次求10的余数,得到当前位,再除10取整
得到的链表是倒序的,你只要倒序输出就好了
热心网友
时间:2023-09-18 10:30
除以10000,取余,再除以1000,取余,以此类推。