gpt4 book ai didi

c++ - 虽然在 y/n 输入 C++ 后不会开始循环

转载 作者:太空狗 更新时间:2023-10-29 20:42:33 26 4
gpt4 key购买 nike

问题:while 无法在用户输入 y 时开始循环。

我花了几个小时在包括 Stack Overflow 在内的所有论坛中搜索线索,并试图解决这个问题(我自己学习 C++)。根据我读过的内容,我尝试过: do 循环在开始时可以工作,但它通过将先前的 numb 条目乘以下一个条目的阶乘(冲洗问题?) ,我尝试了 break 并且它停止了计算,但它也停止了而没有得到 cout <<“Do another?”。我还尝试在语句和 if 语句周围添加/移动大括号(绝望中)。

//problem #6 page 127 Robert Lafore OOP Prg C++ 4th ed.
#include <iostream>
using namespace std;
int main()
{
unsigned int numb;
unsigned long fact = 1; //long for larger numbers
char ch;

cout << "Enter a number ";
cin >> numb;

for (int j = numb; j > 0; j--) //multiply 1 by
{
fact *= j;
cout << "Factorial is "<< fact << endl;
cout << "Do another? (y/n)\n";
cin >> ch;
}

while(ch !='n');
return 0;
}

最佳答案

你的逻辑不太对 - 你需要执行一次操作,然后询问,然后重做整个操作。

现在,您为您的操作执行一个for 循环,然后获取用户键入的字符每次循环迭代,然后开始一个while 永不终止的循环。

do/while 是一个很好的选择:

do
{
fact = 1; // Reinitialize for subsequent loops
cout << "Enter a number ";
cin >> numb;

for(int j = numb; j > 0; j--) //multiply 1 by
{
fact *= j;
}

cout << "Factorial is " << fact << endl;
cout << "Do another? (y/n)\n";
cin >> ch;
}
while (ch == 'y'); // Switched to make anything other than 'y' break out

关于c++ - 虽然在 y/n 输入 C++ 后不会开始循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18263083/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com