我的需要:
使用while循环问候与stdin上可用的名称一样多的名称。当您读取字符串'42'作为名称时停止。
我的编码:
#include<iostream>
using namespace std;
int main()
{
int input=1;
int i= 0;
string name;
while(input<=i)
{
cin>>name;
if(name=="42")
{
break;
}
else
{
cout<<"Hello "<<name<<"!";
i++;
}
}
return 0;
}
结果:
对于输入42,传递测试用例。对于其他输入,测试用例失败。请发表你的答案。
约1年后回答:
非常抱歉这个问题。当我对C ++有0知识时,我问这个问题。这可能对新生有用。
答案 0 :(得分:4)
你的循环存在缺陷
int input=1;
int i= 0;
string name;
while(input<=i)
,input
大于i
,以
您认为测试用例适用于42但实际上循环中的逻辑从未执行过。简单的情况是控制台输出是相同的(即没有),但是你的代码永远不会到cin
来检查输入是否为42
答案 1 :(得分:2)
您的代码永远不会输入#smalldiv2
,因为条件始终为while
。
只需使用,
false
这将无限期地运行你的循环,并在遇到42时中断。
答案 2 :(得分:1)
当您传递42时,您的代码甚至无法运行,因为input
大于i
。
while(input<=i) // input = 1, i = 0, 1 > 0
你可能想要的是一个无限循环:
while (true)
答案 3 :(得分:0)
您的代码存在以下问题:
我的解决方案:
#include<iostream>
using namespace std;
int main()
{
int input=0;
int i= 1;
string name;
while(input<=i)
{
cin>>name;
if(name=="42")
{
break;
}
else
{
cout<<"Hello "<<name<<"!";
i++;
}
}
return 0;
}
答案 4 :(得分:0)
首先,对不起我的基本问题。循环未启动。因为input<=i
为1且CGFloat red = arc4random_uniform(255)/255.0;
CGFloat blu = arc4random_uniform(255)/255.0;
CGFloat green = arc4random_uniform(255)/255.0;
view.backgroundColor = [UIColor colorWithRed:red green:green blue:blu alpha:1.0];
为0.但我给出的条件是initCheckBox();
。由于错误条件,控件不进入循环