所以我试着做一个更小的简单程序来解决一个问题。为此,我试图检查以确保用户输入的数字只包含1和0,然后我将使用此数字执行除法。例如数字11010或10111。现在我的问题是,如果我声明一个整数来存储这个数字(如下所示),就没有办法检查所有的数字是1还是0,对吗?

int userInput;

现在,我可以用数组来做这个。(我知道怎么做,但这导致了我的第二个问题。)。就像这样:
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>

int main (int argc, char *argv[]){
    int myArray[20];
    int i, input, length;
    printf("Please enter how long your number is: \n");
    scanf("%d", &length);
    for (i = 0; i < length; i++){
        printf("Please enter digit %d of your array\n", i+1);
        scanf("%d", &input);
        assert ((input == 1) || (input ==0));


    }

例如,对于第一个数字,用户输入“1”,第二个数字,用户输入“0”,然后第三个数字,用户输入“0”。不过,我需要“抓住”这个号码。我该如何获取这个数字“100”并对其执行算术运算。我希望这是有道理的,如果不是主持人请给我一个机会来澄清。
编辑:许多人建议采用模块化方法。但我还是想知道我能不能用一个数组做到这一点。即创建一个整数变量,并将其设置为等于用户在数组中输入的每个元素。

最佳答案

我认为这可能更简单:

bool is_zeros_and_ones(int n) {
  for (; n != 0; n /= 10) {
    int mod = n % 10;
    if (0 != mod && 1 != mod) {
      return false;
  }
  return true;
}

所以你可以输入整数,不用数组来测试它。

关于c - C程序:仅使用数组检查输入的数字为1和0,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18033616/

10-09 17:52
查看更多