c - 这两个将整数分成数字的 while 循环是如何工作的?

标签 c digits integer-division

该代码即将将整数分隔为数字,该代码可以工作,但我对两个“while”如何一起工作遇到了麻烦。

#include <stdio.h>

int main() {
    int num, temp, factor = 1;

    printf("Enter a 5 digit number: ");
    scanf("%d", &num);

    temp = num;
    while (temp) {
        temp = temp / 10;
        factor = factor * 10;
    }

    while (factor > 1) {
        factor = factor / 10;
        printf("%d   ", num / factor);
        num = num % factor;
    }
    return 0;
}

最佳答案

#include 

int main() {
    int num, temp, factor = 1;

    printf("Enter a 5 digit number: ");
    scanf("%d", &num);                             60403

    temp = num;                                    60403
    //while (temp) {
        temp = temp / 10;                           6040
        factor = factor * 10;                         10

        temp = temp / 10;                            604
        factor = factor * 10;                        100

        temp = temp / 10;                             60
        factor = factor * 10;                       1000

        temp = temp / 10;                              6
        factor = factor * 10;                      10000

        temp = temp / 10;                              0
        factor = factor * 10;                     100000
    //}

    //while (factor > 1) {
        factor = factor / 10;                      10000
        printf("%d   ", num / factor);                      60403/10000 is 6
        num = num % factor;                          403

        factor = factor / 10;                       1000
        printf("%d   ", num / factor);                        403/1000 is 0
        num = num % factor;                          403

        factor = factor / 10;                        100
        printf("%d   ", num / factor);                        403/100 is 4
        num = num % factor;                            3

        factor = factor / 10;                         10
        printf("%d   ", num / factor);                          3/10 is 0
        num = num % factor;                            3

        factor = factor / 10;                          1
        printf("%d   ", num / factor);                          3/1 is 3
        num = num % factor;                            0
    //}
    return 0;
}

关于c - 这两个将整数分成数字的 while 循环是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73827704/

相关文章:

c - 如何在c中检查int或char

c - GMP mpf_add 的精度丢失。我的数字哪里去了?

c - 简单ARM任意代码执行程序出现非法指令错误

C:将华氏度转换为摄氏度

c - 为什么/=2 与 >>=1 对于有符号整数不同,并编译为不同的 asm?

c - 在 C 中,查看一个数是否可​​以被另一个数整除的最佳方法是什么?

c - C 中的指针和地址

algorithm - 查找整数的位数

bash - sed 仅在特定字符模式之间用空格替换破折号

Java 检查文件夹名称中是否有 14 位数字