Tsz Foon 2022-03-25 17:03 采纳率: 91.7%
浏览 4
已结题

问一道类相关的题,为什么我第三排的输出一直都是同一句呢,之前的内容有点忘了.应该是setrange()这一块的问题

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
#include<iostream>
using namespace std;

class rectangle
{
    private:
        float length=0.0;
        float width=0.0;
    public:
        void setlength()
        {
            //cout<<"输入length:";
            cin>>length;
        }
        void setwidth()
        {
            //cout<<"输入width:";
            cin>>width;
        }
        /*****************************************************/
        float getlength()
        {
            cout<<"length: "<<length;
        }
        float getwidth()
        {
            cout<<"width: "<<width;
        }
        /******************************************************/
        void setrange()
        {
            
            if(0.0<length<20.0&&0.0<width<20.0)
            {
                cout<<"length and width are both in 0.0 - 20.0"<<endl;
            }
            else if(0.0<length<20.0!=1)
            {
                cout<<"length is not in 0.0 - 20.0"<<endl;
            }
            else if(0.0<width<20.0!=1)
            {
                cout<<"width is not in 0.0 - 20.0"<<endl;
            }    
        }
        /************************计算周长******************************/
        void Perimeter()
        {
            int Per=(length+width)*2;
            cout<<"Perimeter: "<<Per<<endl;
        }
        /*************************计算面积**********************************/
        void Area()
        {
            int A=length*width;
            cout<<"Area: "<<A<<endl;
        }
        /*******************************************************************************************************************/
};

int main()
{
    rectangle R;
    R.setlength();R.setwidth();
    R.getlength();cout<<"    ";R.getwidth(); 
    cout<<endl;
    R.setrange();
    R.Perimeter();
    R.Area();
    system("pause");
    return 0;
}


![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/801939891846166.png "#left")


运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

img

  • 写回答

1条回答 默认 最新

  • runningfatty 2022-03-25 17:11
    关注

    c++里面不能用连续比较,0.0<length<20.0应该写成 length>0.0 && length < 20.0
    0.0<length<20.0实际运算时是先比较0.0和length,比较结果true和false转成1和0后,再与20.0比较

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月2日
  • 已采纳回答 3月25日
  • 创建了问题 3月25日

悬赏问题

  • ¥15 免费的电脑视频剪辑类软件如何盈利
  • ¥30 MPI读入tif文件并将文件路径分配给各进程时遇到问题
  • ¥15 pycharm中导入模块出错
  • ¥20 Ros2 moveit2 Windows环境配置,有偿,价格可商议。
  • ¥15 有关“完美的代价”问题的代码漏洞
  • ¥15 请帮我看一下这个简易化学配平器的逻辑有什么问题吗?
  • ¥15 暴力法无法解出,可能要使用dp和数学知识
  • ¥15 wpf通过绑定控件自身的值,来实现背景颜色的切换
  • ¥15 CDH6.3 运行hive -e hive -e "show databases;"报错:hive-env.sh:行24: hbase-common.jar: 权限不够
  • ¥15 SSRS制作的报表打开报错,无法正常显示网页