有人可以看看下面的代碼,看看為什么它大部分時間都有效,但并非總是如此?
當我輸入類似的東西時它會起作用"7 1000 1002 896 897 1004 987 960"
,它會顯示Unallowed value(s)
它應該的樣子。
但是如果我輸入"7 896 1003 1004 899 897 898 906"
,它應該說Unallowed value(s)
,但它會定期作業。
int main() {
int inputCount;
bool allAllowed;
int range;
cin >> inputCount;
cin >> range;
if ((range >= 900) && (range <= 1000)) {
allAllowed = 0;
for (int i = 1; i < inputCount; i) {
cin >> range;
if ((range >= 900) && (range <= 1000)) {
allAllowed = 0;
}
else if ((range < 900) || (range > 1000)) {
// i = inputCount 1;
allAllowed = 1;
}
}
}
else if ((range < 900) || (range > 1000)) {
allAllowed = 1;
}
if (allAllowed) {
cout << "Only allowed values" << endl;
}
else {
cout << "Unallowed value(s)" << endl;
}
return 0;
}
uj5u.com熱心網友回復:
您的范圍初始值 896 不在 900 和 1000 之間,并且滿足條件
else if ((range < 900) || (range > 1000))
make allAllowed = 1
,這意味著它將始終回傳“僅允許的值”。
您應該考慮的其他事情是您的程式只會考慮最后輸入的數字來確定allAllowed
條件if ((range >= 900) && (range <= 1000))
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/491072.html
上一篇:在for回圈中重置索引
下一篇:如何保存for回圈結果