【发布时间】:2017-01-18 22:01:55
【问题描述】:
我遇到了一个问题,我必须读取一个整数 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
如何做到这一点?
【问题讨论】:
-
您使用的是 C 还是 C++?如果是这样,请使用此语言进行标记。
-
你做得很好。使用
for循环遍历索引并保存每个数字。要了解更多信息,请阅读C语言中的for或while循环 -
问题在于 D 是一个 INTEGER,它只能被读取一次,即一次读取。所以对于一个数字没有索引的意义
-
D contains only zeroes and ones- 听起来很奇怪。你确定你的那部分作业正确吗? -
@imyjalil 逐个字符,通过
realloc调整大小循环算法可在您阅读更多D数字时进行扩展。您准确地描述了剩下的要做什么。最终,您将在输入流(或 EOF)中达到非{0,1}值,这就是您停止的地方。或者,您可以只分配一个 100K 缓冲区(它不是那么大),将所有char值放入其中,将它们从字符'0'和'1'转换为0和1,缩小到缓冲区适合,并完成它。
标签: c arrays binary integer scanf