產生兩位隨機整數,隨機四則運算符,生成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; } }
三、運行結果
四、遇到的困難
主要是隨機數的應用問題,還有調用函數,后來就合並為一個函數。