我是c ++的新手 我试图写一个程序,我发现它有问题 即使我使用了一个更简单的程序(吼叫),我也无法弄清楚
当我输入85或55之类的数字时,即使程序不响应,也可以
#include "stdafx.h"
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int a=0;
cin >> a;
if(a<25 || 30<a<50 || 60<a<75)
{
cout << "see it does't work\n";
}
return 0;
}
请帮帮我
答案 0 :(得分:4)
#include "stdafx.h"
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int a=0;
cin >> a;
if(a<25 || (30<a && a<50) || (60<a && a<75))
{
cout << "see it does't work\n";
}
return 0;
}
答案 1 :(得分:1)
你的情况应该是这样的:
if(a<25 || (30<a && a<50) || (60<a && a<75))
{
cout << "see it does't work\n";
}
答案 2 :(得分:1)
你的if语句格式不正确。
每个表达式必须求值为true或false,并且不能执行上/下边界等操作。
试试这个:
int main()
{
int a=0;
cin >> a;
if(a<25 || (a > 30 && a < 50) || (a> 60 && a <75))
{
cout << "see it does't work\n";
}
return 0;
}
答案 3 :(得分:1)
尝试
#include "stdafx.h"
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int a=0;
cin >> a;
if ((a<25) || ((30<a) && (a<50)) || ((60<a) && (a<75)))
{
cout << "see it does't work\n";
}
return 0;
}
括号是你的朋友。 每个二进制条件表达式将具有左部分(a),运算符(&lt;)和右部分(25)。你必须打破一切,以这种方式表达。
答案 4 :(得分:1)
以下if语句中发生的事情是:
if(a<25 || 30<a<50 || 60<a<75)
当a = 85时,30总是小于a,因此为真(在转换为整数时c ++表示1),然后1总是小于50,因此为真。
因此,请考虑将if语句更改为
if ( a < 25 || (30 < a && a < 50) || ( 60 < a && a < 75) )
答案 5 :(得分:0)
C ++中没有x < z < y
种语句。您应该将这些语句分成二进制部分:x < z && z < y
。
让我为你改写:
#include <iostream>
int main() {
int a = 0;
std::cin >> a;
if(a < 25 || (30 < a && a < 50) || (60 < a && a < 75)) {
std::cout << "See? It does work!\n";
}
return 0;
}