一、背景
阿超有個兒子上國小二年級,老師每天讓家長給孩子出30道加減法題,雖然不多,但是每天都做也算是個負擔,阿超作為一個老牌程式員當然想用計算機來解決這個小問題,目前對于這個問題對于任何語言都不是問題,比如:
C/C++、C#、Java、Python、VB、JavaScript、Perl……
具體要求如下:
- 能自動生成國小四則運算題目(注意是給國小生用的,要是結果出現負數的話他們會迷茫的!)
- 除了整數外,還要支援真分數的四則運算
請大家用任何一種自己擅長的語言來編寫這段程式,并把程式的介紹和自己編寫的過程寫一個部落格
二、分析
(一) 自己擅長的是c語言,準備用c語言,支援真分數運算,如果用C語言,我們可以這麼考慮,a,b,c,d随機生成。可以生成菜單,然後選擇自己想要的運算,加減乘除四則運算均可以。
(二)當進行一次運算之後可以實作選擇選擇檢視答案或者是進行下一題。然後可以進行不同的操作。
(三)輸入一個數,知道出題的數目,随機産生的題數目,多輸也會提示輸入錯誤。
三、代碼部分
我用的是C語言寫的:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
main()
{
int a,b,op,os;
printf(" [國小生四則運算]\n");
aq1: printf("選擇您想挑戰的運算法則\n");
printf("1.加法 2.減法 3.乘法 4.除法\n");
scanf("%d",&op);
switch(op)
aq: case 1:
srand((unsigned)time(NULL));
a=rand()%100+1;b=rand()%100+1;
printf("題目為:%d + %d = ?\n\n",a,b);
printf("1.檢視答案 2.做下一題\n");
scanf("%d",&os);
if(os==1)
{printf("%d + %d =%d\n\n\n",a,b,a+b);
goto aq1;
}
else
goto aq;
break;
at: case 2:a=rand()%100+1;b=rand()%100+1;
printf("題目為:%d - %d = ?\n\n",a,b);
{printf("%d - %d =%d\n\n\n",a,b,a-b);
goto at;
aq2: case 3:
printf("題目為:%d * %d = ?\n\n",a,b);
{printf("%d * %d =%d\n\n\n",a,b,a*b);
goto aq2;
aq3: case 4:
printf("題目為:%d / %d = ?\n\n",a,b);
{printf("%d / %d =%d\n\n\n",a,b,a/b);
goto aq3;