'if'循环中的C ++循环错误

时间:2013-03-22 17:15:59

标签: c++

我的代码生成了异常。

X = x * 10;
Y = y * 10;

if ((pow(X, 2))+(pow(Y, 2)) <= 27225 and ((pow(X, 2))+(pow(Y, 2)) >= 1225))

用户将输入xy的值,如果值不低,程序将继续。我已经宣布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.";
}

然而,我根本无法使代码工作,因为限制没有施加,它只是继续正常运行,即使值太大/太小,任何人都可以告诉我我做错了什么?感谢

2 个答案:

答案 0 :(得分:5)

我认为您的第一个if条件应该是检查它是否大于1225且小于27225:

if ((pow(X, 2))+(pow(Y, 2)) <= 27225 && ((pow(X, 2))+(pow(Y, 2)) >= 1225))
//                              Here ^^

如果你拥有它,XY的每个可能值都将满足条件;每个数字都小于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
}

请注意,orand并不常用,因为它们是||&&的替代令牌。我建议坚持使用||&&以与大多数其他开发人员保持一致。

答案 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.";
}

这将为您提供预期的两个不同结果