c++ - 在 C++ 中继续程序

标签 c++

我的程序是

#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并按如下方式工作:a5.919 相比,并将该比较结果( 01 )与 12.056 进行比较.由于两者 01小于 12.056 , 整体表达式总是计算为 1 .

要修复,将其重写为:

5.919 < a && a <= 12.056

所有其他类似的表达式也是如此。

关于c++ - 在 C++ 中继续程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23100980/

相关文章:

c++ - FreeType 生成不对称字形

c++ - 我们如何在 C++ 中快速求解斐波那契数列?

c++ - 关于快速 SIMD/面向数据设计的内存布局的直觉

c++ - 为什么这段代码中没有被零除编译时警告或运行时崩溃?

C++ Vector Find() 重载运算符 - 错误

c++ - C 风格字符串到 std::string 的转换说明

c++ - 将 3D MatND 拆分为 2D Mat opencv 的 vector

c++ - AES256 OFB 模式在 C/C++ 中获取 key 流

c++ - VS2010自定义生成.h文件的构建工具

c++ - 递归函数中由信号 SIGSEGV(地址边界错误)终止