C++产生随机数四则运算
产生两位随机整数,随机四则运算符,生成30道运算题。
一、编程思路
看到要求,首先想到的是怎么运用随机数,因为自己对随机数的不熟练所以还要在查很多东西。在一个for循环内先产生两个30以内的随机数,在产生一个4以内的随机数,让0、1、2、3分别对应不同的运算符,之后输出题目,输入数据,判断正确,输出判断结果。
二、代码
//2015年3月6日,30道四则运算 #include <iostream> #include <stdio.h> #include <stdlib.h> #include <time.h> using namespace std; void main() { int A[30],B[30],i,k,t,T,a[30],b[30],c[30]; char C; srand((unsigned)time(NULL)); t=0;T=0; for(i = 0;i<30;i++) { //产生随机符号 k = rand()%4; if(k == 0) C = '+'; else if(k == 1) C = '-'; else if(k == 2) C = '*'; else if(k == 3) C = '/'; A[i] = rand()%100; B[i] = rand()%100; //输出题目 if(C == '+') {cout<<A[i]<<"+"<<B[i]<<"=?"<<endl;a[i] = A[i]+B[i];} else if(C == '-') {cout<<A[i]<<"-"<<B[i]<<"=?"<<endl;a[i] = A[i]-B[i];} else if(C == '*') {cout<<A[i]<<"*"<<B[i]<<"=?"<<endl;a[i] = A[i]*B[i];} else if(C == '/') {cout<<A[i]<<"/"<<B[i]<<"=?"<<endl;a[i] = A[i]/B[i];} } //输出结果 cout<<"结果为:"; for(i=0;i<30;i++) { cin>>b[i]; if(a[i] == b[i]) t++; else { c[T] = i; T++; } } if(t==29) cout<<"恭喜你都答对了!"<<endl; else { cout<<"第"; for(i=0;i<T;i++) cout<<c[i]+1<<"题错了!"<<endl; } }
三、运行结果
四、遇到的困难
主要是随机数的应用问题,还有调用函数,后来就合并为一个函数。