我遇到了一个将 float
作为输入的问题,并检查输入是否介于 10 和 100 之间,否则再次输入。剩下的问题遵循这个 k 的值,这很容易解决。但我遇到的真正问题是验证。
scanf("%f",&k);
if(k>10.0 && k<100.0)
scanf("%f",&k);
else
{
......//my code
}
但是当我提交的时候,它给出了错误的答案,真正的问题是在
#Input-10.@
#Input-@
因为对于这个输入,它不是转到 else 部分,而是通过像
这样的输入转到 if 部分 #Input-10
很满意。
谁能给我解决这个问题的解决方案,这个范围内的 float 和 integer 类型的输入只满足否则不满足。
最佳答案
您混淆了比较运算符(似乎您仅在获得有效输入而不是无效输入时才重试)。另外,您只重试一次,但我怀疑您想一直重试,直到获得有效输入。这是你可以做到的:
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
double k;
do{
cin>>k;
}while(k<=10||k>=100);
//the rest of your code goes here
return 0;
}
关于c++ - 验证以下条件的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18301220/