所以我试着做一个更小的简单程序来解决一个问题。为此,我试图检查以确保用户输入的数字只包含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/