1. 程式人生 > >個人項目1:一個能生成小學二年級四則運算題目的“軟件”

個人項目1:一個能生成小學二年級四則運算題目的“軟件”

交換 signed null width wid 自然數 程序 src 生成

做這個程序,用了差不多半個小時。從開始的思路到語句的實踐,之間也出現了一些語法的錯誤,最後也得到了修正。由於學習的語言種類有限(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:一個能生成小學二年級四則運算題目的“軟件”