首页 > 解决方案 > scanf整数的每个数字并将整数存储在C中

问题描述

示例输入:12345

如您所见,我可以通过 scanf 存储每个数字“1”“2”“3”“4”“5”,但是如何存储整数“12345”?它可以发生在同一个 scanf 行内吗?

#include <stdio.h>
#include <math.h>


int main(){

    int wholeNumber = 0;
    int i1,i2,i3,i4,i5 = 0;

    printf("\nPlease enter a five digit integer value.\n");
    scanf("%1d%1d%1d%1d%1d",&i,&i2,&i3,&i4,&i5); //scanning each digit but 
                                                 //how do I store the whole #?
    return 0;
}

标签: cinputprintfscanf

解决方案


我将尝试回答您的第一个问题。您可以简单地将输入的数字乘以 10 的倍数。让我们通过计算来展示它:

5*1 + 4*10 + 3*100 + 2*1000 + 1*10000 = 12345

因此,这是手动使用的代码:

...
scanf("%1d%1d%1d%1d%1d",&i,&i2,&i3,&i4,&i5);
i*=10000;
i2*=1000;
i3*=100;
i4*=10;
i5*=1;
...

推荐阅读