【发布时间】:2020-02-10 06:49:15
【问题描述】:
解决方案的问题是第一行将包含总数。输入和下一行将取三个整数,然后我们必须根据输入计算结果。所以我的解决方案的问题是 While 循环没有终止。
我已经检查了几次代码,并认为这是由于条件语句和 if-else 导致 --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 后终止,但它没有发生。
【问题讨论】:
-
与您当前的问题无关,但您应该添加一些输入验证。解决问题后,请考虑如果用户输入负值(非零,因此为“真”)会发生什么。
-
@Someprogrammerdude 这是一个关于 codechef 的问题,第一行将包含测试用例的总数。所以,它不能是负数。
标签: c++ if-statement gcc while-loop conditional-statements