gpt4 book ai didi

c++ - 为什么我的代码在 C++ 中无限循环。我的代码需要反复提示用户

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:01:53 26 4
gpt4 key购买 nike

我的代码需要反复提示用户输入一个整数。当用户不想再继续输入数字时,输出用户输入的所有正数之和,紧接着输出用户输入的所有负数之和。这是我目前所拥有的。

#include <iostream>
using namespace std;

int main() {
int a, sumPositive, sumNegative;
string promptContinue = "\nTo continue enter Y/y\n";
string promptNum = "\nEnter a numer: ";
char response;
while (response = 'y' || 'Y') {
cout << promptNum;
cin >> a;
if(a)
sumPositive += a;
else
sumNegative += a;
cout<< promptContinue;
}
cout<< "Sum of all the positive numbers is: "<< sumPositive<<endl;
cout<< "Sum of all the negative humbers is : "<< sumNegative<<endl;
return 0;
}

最佳答案

只是为了将此从未答复列表中删除:

你的while条件是错误的

while (response = 'y' || 'Y') { 

将始终评估为 true。这将导致无限循环。

应该是

while (response == 'y' || response == 'Y') { 

但是,由于 response 未初始化,这将始终评估为 false。通过将此从 while... 更改为 do...while 循环来解决此问题。此外,您永远不会检索到 response 的值,因此我不确定您期望在那里发生什么。

#include <iostream>
using namespace std;
int main() {
int a, sumPositive, sumNegative;
string promptContinue = "\nTo continue enter Y/y\n";
string promptNum = "\nEnter a numer: ";
char response;
do {
cout << promptNum;
cin >> a;
if(a)
sumPositive += a;
else
sumNegative += a;
cout<< promptContinue;
cin >> response;
}
while (response == 'y' || response == 'Y');

cout<< "Sum of all the positive numbers is: "<< sumPositive<<endl;
cout<< "Sum of all the negative humbers is : "<< sumNegative<<endl;
return 0;
}

此示例中可能还有其他我尚未注意到的错误。

关于c++ - 为什么我的代码在 C++ 中无限循环。我的代码需要反复提示用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58275885/

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