如何结束我的主要功能?

时间:2014-09-20 16:26:16

标签: c

如果用户输入超出范围的值,我想结束我的主要功能。出于某种原因,这似乎不起作用。

fscanf(stdin, "%d", &T);

if(!(T >= 1 || T <=500)) exit(0);

这样做的最佳方式是什么?

4 个答案:

答案 0 :(得分:2)

对于T的任何值,T >= 1 || T <=500变为true。这是因为每个值都大于1 小于500。如果T0,则其小于500,如果T501,则大于1。这导致!(T >= 1 || T <=500始终为false

试试这个

if( T < 1 || T > 500 ) exit(0);  

或者您可以将逻辑更正为

if(!(T >= 1 && T <=500)) exit(0);

答案 1 :(得分:1)

让我们分发!(德摩根定律),它应该更清楚原因:

 if(!(T >= 1) && !(T <=500)) exit(0);

然后

 if(T < 1 && T > 500) exit(0);

换句话说,这个条件永远不会得到满足。

你只想

 if(T < 1 || T > 500)

答案 2 :(得分:0)

这可能是因为您输入的值介于1和500之间。尝试打印扫描值。

答案 3 :(得分:0)

尝试

if(T <= 1 || T >=500)) 
    return 0;

为此你需要用整数返回值启动你的main函数,比如

int main() //instead of void main() or just main()