Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查数组元素中的所有数字是0还是1[c++]_C++_Arrays_Loops_Binary - Fatal编程技术网

检查数组元素中的所有数字是0还是1[c++]

检查数组元素中的所有数字是0还是1[c++],c++,arrays,loops,binary,C++,Arrays,Loops,Binary,我需要检查数组中一个元素中的所有数字是=0还是1 我有以下功能: bool checkIfBin(int okt) { while (okt > 0) { int digit = okt % 10; if (digit > 1) return false; okt /= 10; } return true; } 调用此函数如下所示: for (int j=0; j <

我需要检查数组中一个元素中的所有数字是=0还是1

我有以下功能:

bool checkIfBin(int okt) {
    while (okt > 0)
    {
        int digit = okt % 10;

        if (digit > 1)
            return false;
        okt /= 10;
    }

    return true;
}
调用此函数如下所示:

for (int j=0; j < 4; j++) {
        cout << "Enter" << j+1 << " octet in binary system: ";
        
        if (checkIfBin(okt[j]) == true)
            cin >> okt[j];
        else
            break;
    }
问题在于,当函数返回false时,它不会阻止程序循环。我已经调试了函数,它似乎工作得很好,但我只是在学习,我可能会做错。没有收到任何错误


我不知道问题出在哪里

谢谢大家的回答, 尤其是“WhozCraig”

for (int j=0; j < 4; j++) {
        cout << "Enter" << j+1 << " octet in binary system: ";
        
        cin >> okt[j];

        if ((!checkIfBin(okt[j])) break; 
    }

很好

谢谢大家的回答, 尤其是“WhozCraig”

for (int j=0; j < 4; j++) {
        cout << "Enter" << j+1 << " octet in binary system: ";
        
        cin >> okt[j];

        if ((!checkIfBin(okt[j])) break; 
    }

工作正常

问题源于您在读取输入之前检查输入

for (int j = 0; j < 4; j++) 
{
    cout << "Enter" << j+1 << " octet in binary system: ";

    cin >> okt[j];

    if (!checkIfBin(okt[j]))
        break;
}

应该可以很好地工作。

问题源于这样一个事实:在阅读输入之前,您正在检查输入

for (int j = 0; j < 4; j++) 
{
    cout << "Enter" << j+1 << " octet in binary system: ";

    cin >> okt[j];

    if (!checkIfBin(okt[j]))
        break;
}

应该可以很好地工作。

在阅读之前检查一个数字似乎有点落后。看起来您得到了正确的零件,但装配顺序错误。如果a==true与如果a相同。移动cin>>。。。在测试上方,将测试更改为if!检查BINOKT[j]断裂;我在main前面有一个函数声明,在@ŁukaszStrama结尾有函数声明。。这与这个问题毫无关系。只需逐行查看您的代码,并尝试向自己解释它。在阅读之前检查一个数字似乎有点倒退。看起来您得到了正确的零件,但装配顺序错误。如果a==true与如果a相同。移动cin>>。。。在测试上方,将测试更改为if!检查BINOKT[j]断裂;我在main前面有一个函数声明,在@ŁukaszStrama结尾有函数声明。。这与这个问题毫无关系。只需逐行查看您的代码,并尝试向自己解释它。