即使我尝试递减 t,While 循环也没有终止

The While loop is not terminating even i tried decrementing t

本文关键字:循环 While 终止      更新时间:2023-10-16

解决方案的问题是第一行将包含输入的总编号,下一行将采用三个整数,然后我们必须根据输入计算结果。所以我的解决方案的问题是 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<<"10n";
else if(h>50 and c<0.7)
cout<<"9n";
else if(c<0.7 and t>5600)
cout<<"8n";
else if(h>50 and t>5600)
cout<<"7n";
else if(h>50 or c<0.7 or t>5600)
cout<<"6n";
else
cout<<"5n";
--t;
}
return 0;
}

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

在循环之外,你有

int t{0};

在循环中,您拥有

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

你有两个不同且独特的变量t它们相互遮蔽。在循环内部,当你执行--t时,你会递减循环内的变量,而不是你用于循环条件的变量。

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