C語言編寫的隨機產生四則運算測試題


題目:編寫一個四則運算測試題的程序,要求每道題都要隨機產生

解題思路:

      1.編寫測試題,且為30道,就要用到循環函數,因此想到用for()函數

      2.隨機產生兩個數,就想到用rand()函數。

         注:1.rand()函數在使用時應有頭文件#include<stdlib.h>,我上課時由於沒有用此頭文件,程序一直無法運行

              2.我在調試程序的過程中,隨機數一直不變,通過查資料我了解到,要想讓隨機數改變,需要提供一個種子,相同的種子會產生相同的隨機數,因此必須在rand()函數前                   加上 srand(time(NULL));語句,且頭文件中加上#include<time.h>,這樣就能保證兩個隨機數能夠該變了。

      3.隨機纏上四則運算要想每道題+ ,-,*,/都是隨機的,我就想到了用分支函數,通過用if 語句,我感覺有點麻煩,然后我就想到了switch()函數,且通過隨機產生0,1,2,3            四個數來進行分支,比較方便一點

       4.考慮到小學生沒有學過負數,所以在做減法時,我想到了,要讓大數減小數來計算。還有就是除法,除數不能是0,因此我想到了如果除數是0,則重新出一道題,為了                   保證題目為30道題,要讓i+1才行。

 

下面是我編寫的一個小程序:

#include<iostream.h>
#include<stdlib.h>
#include<time.h>
int main()
{
 int x,y,z,t; 
 srand(time(NULL));
 cout<<"小學二年級四則運算測試題"<<endl;
 for(int i=0;i<30;i++)
 {
  x=rand()%100;
  y=rand()%100;
  z=rand()%4;
  switch(z)
  {
  case 0:
   cout<<x<<"+"<<y<<"="<<endl;
   break;
  case 1:
   if(x<y)
   {
    t=x;
    x=y;
    y=t;
   }
   cout<<x<<"-"<<y<<"="<<endl;
   break;
  case 2:
   cout<<x<<"*"<<y<<"="<<endl;
   break;
  case 3:
   if(y!=0)
   {
   cout<<x<<"/"<<y<<"="<<endl;
   }
   else
   {
    i=i-1;
   }
   break;
  default:
   cout<<"超出測試范圍"<<endl;
   break;
  }
 }
 cout<<"恭喜你已經完成了30道數學測試題"<<endl;
 return 0;
}

運行截圖:

心得體會:

上課時由於自己的編程水平比較低,導致未能及時完成作業,課后認真完成了此次作業。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM