gpt4 book ai didi

当要求使用随机数生成器时,C++ 程序在 while 循环中崩溃

转载 作者:行者123 更新时间:2023-11-27 23:23:02 24 4
gpt4 key购买 nike

所以我正在尝试编写一个程序来生成随机的基本数学问题,例如加法、减法等。

当我尝试生成除法问题时,我做了一个 do-while 循环,该循环一直运行直到满足除法问题的先决条件。

但出于某种原因,当我要求它生成 20 个没有余数的除法问题时,它总是崩溃。

请帮忙

这是代码

#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int correct,total,MAXVAL;
const char oper[4]={'/','/','/','/'};

typedef struct data{
int first,second;
char operation;
}data;

data datagenerator(){
data newData;
newData.first= (rand()%MAXVAL);
newData.operation=oper[rand()%4];
newData.second=(rand()%MAXVAL);
return newData;
}

bool corrector(data newData){
bool isture=false;
switch(newData.operation){
case '/':
if((newData.first%newData.second)==0){
isture=true;
}
break;
case '*':
isture=true;
break;
case '+':
isture=true;
break;
case '-':
isture=true;
break;
}
return isture;
}

void quizer(){

system("CLS");
for(int counter=1;counter<=total;counter++){
cout<<"Q"<<counter<<": ";
data newData;
do{
newData=datagenerator();
}while(!corrector(newData));
cout<<newData.first<<newData.operation<<newData.second<<"\n";
}
cout<<"\nYou got "<<correct<<"/"<<total<<"correct\n";
}


int main(){
//srand((unsigned)time(0));
char x;
cout<<"How many questions do you want?"<<endl;
cin>>total;
cout<<"Enter the maximum value\n";
cin>>MAXVAL;
cout<<"Are you ready?\n";
cin>>x;
quizer();

system("PAUSE");
return 0;
}

最佳答案

您需要检查是否被 0 除。

bool corrector(data newData){
bool isture=false;
switch(newData.operation){
case '/':
if(newData.second == 0) {
break;
}
if((newData.first%newData.second)==0){
isture=true;
}
...

关于当要求使用随机数生成器时,C++ 程序在 while 循环中崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11463628/

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