从高位开始逐位分割并输出它的各位数字

输入一个非负整数,从高位开始逐位分割并输出它的各位数字。例如,输入9837,输出9 8 3 7

#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
	
	int digit, number, pow, t_number;

    scanf("%d", &number);
    t_number = number;
    pow = 1;
    
    while (t_number > 9)//获取number位数 
    {
        pow = pow * 10;//pow位数+1 
        t_number = t_number / 10;//t_number位数-1 
    }
    
    while (pow >= 1)//开始分割 
    {
        digit = number / pow;
        number = number - digit * pow;
        pow = pow / 10;
        printf("%d ", digit);
    }
    printf("\n");
	
	return 0;
}
  • 15
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 以下是 C 语言代码实现: ```c #include <stdio.h> int main() { int num; scanf("%d", &num); // 输入整数 int divider = 1; // 除数初始化 while (num / divider >= 10) { divider *= 10; // 计算除数 } while (divider > 0) { printf("%d ", num / divider); // 输出每一位数字 num %= divider; // 取余数 divider /= 10; // 除数减少一位 } return 0; } ``` 这段代码首先通过 `scanf` 函数获取输入整数,然后通过循环计算出除数 `divider` 的初始值,使得其为输入整数的最高位数值对应的值。接着,使用 `while` 循环不断将 `num` 除以 `divider` 得到最高位数字,并将 `num` 取余数,以便计算下一位数字。最后,将 `divider` 除以 10,以便计算下一位数字,直到 `divider` 为 0 时,输出结束。 ### 回答2: 您可以使用以下C语言代码来实现该功能: ```c #include <stdio.h> int main() { int n; scanf("%d", &n); int digit, divisor = 1; while (n / divisor >= 10) { divisor *= 10; } while (divisor > 0) { digit = n / divisor; printf("%d ", digit); n %= divisor; divisor /= 10; } return 0; } ``` 该代码首先通过`scanf`函数从标准输入中读取一个整数,并将其存储在变量`n`中。接下来,使用`divisor`来迭代地找到整数的最高位数。 然后,使用一个`while`循环来迭代地输出整数的各位数。在每次迭代中,首先将当前位数除以`divisor`,并将结果存储在`digit`变量中。接着,使用`printf`函数输出`digit`的值,并紧随其后输出一个空格。然后,使用`%`运算符计算新的`n`值,该值将是除去最高位数后的剩余数。最后,将`divisor`除以10,降低一个数量级,以便按照从高到低的顺序输出整数的各位数。 这样,就能够按要求从高位开始逐位输出整数的各位数字。 ### 回答3: 可以使用如下代码来实现 C 语言输出整数各位数字的功能: ```c #include <stdio.h> int main() { int num; scanf("%d", &num); // 计算整数的位数 int temp = num; int count = 0; while (temp > 0) { temp /= 10; count++; } // 逐位输出整数的各位数字 temp = count - 1; while (temp >= 0) { int divisor = 1; for (int i = 0; i < temp; i++) { divisor *= 10; } int digit = num / divisor % 10; printf("%d ", digit); temp--; } return 0; } ``` 程序首先通过 `scanf` 从标准输入中读取一个整数,并将其存储在变量 `num` 中。 接着使用一个循环来计算整数的位数,即不断将 `temp` 除以 10 直到其小于等于 0,并记录循环的次数 `count`。 然后,使用另外一个循环来逐位输出整数的各位数字。循环的次数为 `count` 减 1,每次循环都会计算一个除数 `divisor`,用于从整数中取出对应位的数字,并将其打印输出。最后,通过将 `temp` 减 1,不断重复上述过程,直到 `temp` 小于 0。 最后,程序返回 0,表示正常终止。输出的各位数字之间会用空格分隔。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值