標籤:for迴圈語句 and 迴圈 交換 運行 函數 nbsp 決定 ==
做這個程式,用了差不多半個小時。從開始的思路到語句的實踐,之間也出現了一些文法的錯誤,最後也得到了修正。由於學習的語言種類有限(c#剛剛開始學,大一時學習過c語言),在這裡選擇用C語言編寫這個程式,環境是vs2010。
編寫軟體的大綱及思路:
1.需要產生隨機自然數,我選擇了rand函數
2.需要有加減乘除符號且隨機分布,我定義了一個隨機數c,當隨機數取0的時就是+,取1的時就是-,取2的時就是*,取3的時就是/
3.減法算出來的數不能為負,我採用了if函數先判斷大小,如果順序不合適就對兩個隨機數進行交換
4.用for迴圈語句可以輕鬆的產生30道題目
代碼如下:
#include<stdio.h>#include<Windows.h>#include<time.h>void main(){ int a, b, c, d, i; srand(unsigned( time(NULL))); for(i = 0; i < 30; i++) { a = rand() % 100; b = rand() % 100; c = rand() % 4; switch (c) { case 0:printf("%d + %d =\n",a,b); break; case 1:if (a < b) { d = a; a = b; b = d; } printf("%d - %d =\n", a, b); break; case 2:printf("%d * %d =\n",a,b); break; case 3: while (b == 0) { b = rand() % 100; } printf("%d / %d =\n", a, b); break; } } system("pause");}
運行結果如下:
和同學的程式相比,都使用了隨機函數rand擷取隨機數,利用for函數控制產生題型的數量。不同之處在於“+ - * /”符號的產生方式,我是定義了一個隨機變數c,它的範圍是0-3,通過c產生的數來決定加減乘除的符號,而同學的是先定義一個包含加減乘除的字串,然後利用srand在裡面擷取隨機運算子。總的來說,結果都是一樣的,我也學習到另一種編程方法,收穫頗多。
個人項目1:一個能產生小學二年級四則運算題目的“軟體”