我遇到了一个问题,我必须读取整数 D,使得 D 遵循以下规则:
-> D 仅包含零和一
-> 1 ≤ 数字的长度 D ≤ 10^5。
-> D 可以从零开始
此外,我必须将这个数字存储在数组中,以便该数字的每一位都存储在数组的一个单元格中。
例如,如果数字是001011
,它应该存储在数组中
arr[0]=0 arr[1]=0 arr[2]=1 arr[3]=0 arr[4]=1 arr[5]=1
如何做到这一点?
最佳答案
您的问题称为 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;
}
Input:
111000111
Output:
111000111
Zeros: 3 Ones: 6
现在您可以对计数器执行一些逻辑,以确定实际输出是"is"还是“否”。
祝你好运。
关于c - 存储由零和一组成的大整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39433825/