我的程序是
#include<iostream.h>
#include<stdio.h>
#include<stdlib.h>
int main()
{
int exit;
while(1==1)
{
float a,b,c;
printf("Enter length(in metre)");
scanf("%f",&a);
printf("Enter width(in metre)");
scanf("%f",&b);
printf("Enter height(in metre)");
scanf("%f",&c);
if(5.919<a<=12.056 && 2.340<b<=2.347 && 2.380<c<=2.648)
{
printf("40' high cube \n");
}
else if(a<=5.662 && 2.340<b<=2.438 && c<=2.16)
{
printf("20' open top");
}
else
{
printf("40' flat rack");
}
cout << "Would you like to exit?(Yes/No)"<<endl;
cin >> exit;
if(exit == 1)
{
break;
}
}
return 0;
}
但是,代码给出了错误的答案。无论我提供什么提要..它都选择了 40"高立方体 另外,我想输入 yes/no 来继续,而不是 1。我应该怎么做?
最佳答案
不幸的是,虽然以下内容在语法上是有效的,但它并没有达到您的预期:
5.919<a<=12.056
这被解析为 (5.919 < a) <= 12.056
并按如下方式工作:a
与 5.919
相比,并将该比较结果( 0
或 1
)与 12.056
进行比较.由于两者 0
和 1
小于 12.056
, 整体表达式总是计算为 1
.
要修复,将其重写为:
5.919 < a && a <= 12.056
所有其他类似的表达式也是如此。
关于c++ - 在 C++ 中继续程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23100980/