一个蒟蒻的有关随机数函数的求助
  • 板块学术版
  • 楼主hzx895
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/3/18 15:38
  • 上次更新2023/10/23 21:14:59
查看原帖
一个蒟蒻的有关随机数函数的求助
439834
hzx895楼主2023/3/18 15:38
#include <iostream>
#include <string>
#include <ctime>
#include <cstdlib> 
#define random(x) rand()%(x)

using namespace std;

int mode,algo,x,y,xy,answer,ans,judge=0,randnum;
string question;

void addition(int a,int b){
    answer=xy=a+b;
    question=to_string(a)+"+"+to_string(b)+"=";
}

void subtraction(int a,int b){
    answer=xy=a-b;
    question=to_string(a)+"-"+to_string(b)+"=";
}

void multiplication(int a,int b){
    answer=xy=a*b;
    question=to_string(a)+"×"+to_string(b)+"=";
}

void division(int a,int b){
    xy=a*b;
    answer=a;
    question=to_string(xy)+"÷"+to_string(b)+"=";
}

int randjudge(int a){
	if(a==judge) return randjudge(random(randnum));
	else{
		judge=a;
		return a;
	};
}

int main(){
	srand((int)time(0));
    cout<<"模式选择:\n1.10000以内加减法心算\n2.1000以内四则运算\n";
    cin>>mode;
    if(mode==1){
    	randnum=10000;
        while(1){
            algo=random(3); 
            x=randjudge(random(randnum));
            y=random(randnum);
            switch(algo){
                case 1: addition(x,y);break;
                case 2: subtraction(x,y);break;
            }
            cout<<question;
            while(1){
                cin>>ans;
                if(ans==answer) break;
                else cout<<"答案错误\n"<<question;
            }
        }
    }
    else if(mode==2){
        randnum=1000;
		while(1){
            algo=random(5); 
            x=randjudge(random(randnum));
            y=random(randnum);
            switch(algo){
                case 1: addition(x,y);break;
                case 2: subtraction(x,y);break;
                case 3: multiplication(x,y);break;
                case 4: division(x,y);break;
            }
            cout<<question;
            while(1){
                cin>>ans;
                if(ans==answer) break;
                else cout<<"答案错误\n"<<question;
            }
        }
    }
}

求助dalao,为什么这个口算题卡的程序会经常连续多次输出同一道问题(randjudge函数是后加的,但是没有任何作用),有时候还没办法正常的输出问题?

2023/3/18 15:38
加载中...