While循环不会终止,即使我尝试减小t

问题描述 投票:-1回答:1

解决方案的问题是第一行将包含总数。输入,下一行将取三个整数,然后我们必须根据输入来计算结果。因此,我的解决方案的问题是While循环未终止。

我已经多次检查代码,并认为这是由于条件语句和if-else导致的–t语句未执行。所以,我应该做些什么修改才能使程序在t之后终止输入。

#include<iostream>
using namespace std;

int main()
{
int t{0};
cin>>t;
while(t)
{
    double h{0},c{0},t(0);
    cin>>h>>c>>t;
    if(h>50 and c<0.7 and t>5600)
        cout<<"10\n";
    else if(h>50 and c<0.7)
        cout<<"9\n";
    else if(c<0.7 and t>5600)
        cout<<"8\n";
    else if(h>50 and t>5600)
        cout<<"7\n";
    else if(h>50 or c<0.7 or t>5600)
        cout<<"6\n";
    else
        cout<<"5\n";
    --t;
}
return 0;
}

我希望程序在t输入之后终止,但是没有发生。

c++ if-statement gcc while-loop conditional-statements
1个回答
1
投票

您拥有的循环之外

int t{0};

并且在循环中,您有

double h{0},c{0},t(0);

您有两个互不相同的不同且不同的变量t。在循环中,当您执行--t时,会递减循环中的变量,而不是用于循环条件的变量。]​​>

您通过使用变量的描述性名称而不是简短的一个字母的名称来解决此问题。

© www.soinside.com 2019 - 2024. All rights reserved.