我的代码生成了异常。
X = x * 10;
Y = y * 10;
if ((pow(X, 2))+(pow(Y, 2)) <= 27225 and ((pow(X, 2))+(pow(Y, 2)) >= 1225))
用户将输入x
和y
的值,如果值不低,程序将继续。我已经宣布x和y为上述双打。这部分上面有代码,它不是开始。
我将此代码作为我的其他if
函数
if (((pow(X, 2))+(pow(Y, 2)) > 27225) or ((pow(X, 2))+(pow(Y, 2)) <1225))
{
cout<<"\n\nThe values you have chosen for the centre points are to not compatible with our program. Please choose smaller values.";//new
cout<<"\n\nIf you do not understand, please ask the programmer for further explanation.";
}
然而,我根本无法使代码工作,因为限制没有施加,它只是继续正常运行,即使值太大/太小,任何人都可以告诉我我做错了什么?感谢
答案 0 :(得分:5)
我认为您的第一个if
条件应该是检查它是否大于1225且小于27225:
if ((pow(X, 2))+(pow(Y, 2)) <= 27225 && ((pow(X, 2))+(pow(Y, 2)) >= 1225))
// Here ^^
如果你拥有它,X
和Y
的每个可能值都将满足条件;每个数字都小于27225或大于1225。
对于第二个条件,只需改为else
:
if ((pow(X, 2))+(pow(Y, 2)) <= 27225 && ((pow(X, 2))+(pow(Y, 2)) >= 1225)) {
// Distance from origin is within range
} else {
// Distance from origin is outside range
}
请注意,or
和and
并不常用,因为它们是||
和&&
的替代令牌。我建议坚持使用||
和&&
以与大多数其他开发人员保持一致。
答案 1 :(得分:0)
从您的编码来看,您似乎没有定义X,Y的数据类型。 而不是
X = x * 10;
Y = y * 10;
相反,请尝试
int X = x * 10;
intY = y * 10;
if (((pow(X, 2))+(pow(Y, 2)) > 27225)) {
cout<<"\n\nThe values you have chosen for the centre points are to not compatible with our program. Please choose smaller values.";//new
}
else if( ((pow(X, 2))+(pow(Y, 2)) <1225))
{
cout<<"\n\nIf you do not understand, please ask the programmer for further explanation.";
}
这将为您提供预期的两个不同结果