存储由0和1组成的大整数

时间:2016-09-11 07:26:55

标签: c arrays binary integer scanf

我遇到了一个问题,我必须读取整数D,使得D遵循以下规则:

- > D仅包含零和一个

- > 1≤数字D≤10^ 5的长度。

- > D可以从零开始

此外,我必须将此数字存储在数组中,以便no的每个数字都存储在数组的一个单元格中。

例如,如果数字为001011,则应将其存储在数组中,如

arr[0]=0  arr[1]=0  arr[2]=1  arr[3]=0  arr[4]=1  arr[5]=1

如何做到这一点?

1 个答案:

答案 0 :(得分:2)

您的问题被称为XY问题(请参阅https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。

真正的问题(在评论中链接)不需要存储D的数字。而只需计算1和0的数量。  类似的东西:

#include <stdio.h>

int main(int argc, const char *argv[]) {

    int rc;
    char c;
    int numZero = 0;
    int numOne = 0;
    while(((rc = scanf("%c", &c)) == 1) && (c == '0' || c == '1'))
    {
        if (c == '0') 
            ++numZero ;
        else
            ++numOne;

        printf("%c", c);
    }
    printf("\n");
    printf("Zeros: %d Ones: %d\n", numZero, numOne);
    return 0;
}
  

输入:

     

111000111

     

输出:

     

111000111

     零点:3个:6个

现在你可以在计数器上做一些逻辑,看看实际输出是“是”还是“否”。

祝你好运。