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



我需要检查数组中一个元素中的所有数字是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时,它并不能阻止程序循环。我调试过函数,它似乎工作得很好,但我只是在学习,我可能做错了。没有收到任何错误。

我不知道的问题出在哪里

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

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; 
}

工作良好

相关内容

最新更新