按单位读取整数

C语言的入门课程中,非常流行的一种考试题型是整数的分解,通过int/long int读取一段相对较大的整数,然后通过除以10取余的方法进行分解。然后正向或者逆向将其输出。而将控制台传入的长数字按单位分解在ACM里则是一项基本功,很多人沿用了入门课程的方法进行操作并将其存入数组中以待后续使用,殊不知其实scanf本身可以通过按单位读取直接存储在数组中。

以下给出参考用例(输出不严格控制格式了),相信大家能看懂,不解释了。

【输入】123456
【输出】1 2 3 4 5 6

【参考实现】

#include <stdio.h>

int main()
{
    int a[6];
    for (int i=0; i<6; i++){
        scanf("%1d",a+i);
    }

    for (int i=0; i<6; i++){
        printf("%d ",a[i]);
    }

    return 0;
}

分享