gpt4 book ai didi

c++ - 该程序应该触发底部的 'if'语句,但它不会照常进行。我该如何工作?

转载 作者:行者123 更新时间:2023-12-01 15:10:51 24 4
gpt4 key购买 nike

我尝试了一堆垃圾来尝试正确地获取变量,但是我一直在搞砸,而且我不知道要在哪里正确放置变量。我也很难放置if和else if语句。

#include <iostream>
#include <stdlib.h>
#include <ctime>
#include <cstdlib>
using namespace std;

int main()
{
int iseed = time(NULL);
srand(iseed);
int min = 1;
int max = 6;
int sum1 = 0;
int sum2 = 0;
int A = 0;
int B = 0;

int C = min + rand() % (max - min +1);
int D = min + rand() % (max - min +1);


char repeat2;
char repeat1;

cout << "Beat the computer!\n";

do {
int A = min + rand() % (max - min +1);
int B = min + rand() % (max - min +1);
int sum1 = A + B;

cout << "you rolled a " << A << " and a " << B << endl;
cout << "Total roll = " << sum1 << endl;
cout << "Would you like to keep this roll? Y or N: ";
cin >> repeat1;

} while (repeat1 == 'N');

cout << "The computer rolled a " << C << " and a " << D << endl;
cout << "Total roll = " << sum2 << endl;


if (sum2 > sum1) {cout << "You lose! D= YOU ROLLED " << sum1 << "HE ROLLED " << sum2 << ".";}
else if (sum1 < sum2) {cout << "You win! =D ";}
else if (sum1 = sum2) {cout << "It's a tie /= ";}
cout << "Would you like to play again?: ";
cin >> repeat2;

}

最佳答案

问题1
int sum1 = A + B; / do循环中的while声明了一个新的sum1,它隐藏了int sum1 = 0;,因此,外部sum1始终不会从0更改。

解决方案1

更改

int sum1 = A + B;


sum1 = A + B;

问题2

什么都不加和 CD来提供一个非零的 sum2

解决方案2

加入
sum2 = C + D;

问题3
if (sum2 > sum1)
else if (sum1 < sum2)

两者都测试相同的条件,即玩家的掷骰数小于计算机的掷骰数。

解决方案3

更改
else if (sum1 < sum2)


else if (sum2 < sum1)

为避免将来出现此类问题,请给变量起良好的描述性名称。与发现 sum_playersum_computer已被交换相比,发现 sum1意外地与 sum2交换要容易得多。

问题4
else if (sum1 = sum2)

不是比较。这是一个赋值,然后进行测试,以测试 sum1的新值不为0(它将为0)。

解决方案4

使用
else if (sum1 == sum2)

代替。

关于c++ - 该程序应该触发底部的 'if'语句,但它不会照常进行。我该如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60678057/

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