【发布时间】:2012-05-29 15:27:20
【问题描述】:
我只是在学习关于 do/while 循环的简单 c++ 教程,我似乎完全复制了教程中写的内容,但我没有得到相同的结果。这是我的代码:
int main()
{
int c=0;
int i=0;
int str;
do
{
cout << "Enter a num: \n";
cin >> i;
c = c + i;
cout << "Do you wan't to enter another num? y/n: \n";
cin >> str;
} while (c < 15);
cout << "The sum of the numbers are: " << c << endl;
system("pause");
return (0);
}
现在,在 1 次迭代之后,循环只是运行而无需再次询问我的输入,并且仅使用我的第一个初始输入为 i 计算总和。 但是,如果我删除第二对 cout/cin 语句,程序运行正常..
有人能发现我的错误吗?谢谢!
【问题讨论】:
-
这是什么教程?它完全忽略了
y/n答案的内容,只在总和小于15时进行迭代 -
我认为
str应该是std::string的类型。 -
@maverik,如果只是 y/n,则更像
char。 -
@chris:当然。它甚至可以保留为
int,但对我来说看起来很奇怪。 -
ah.. 抱歉,原始教程将 while (str == 'y') 作为终止条件,但即使我在第一次迭代后输入 'y' ,它也会退出整个循环并打印我的第一个输入 i 作为总和..