基於改編寫的關於隨機生成四則運算的小程式
基本要求:
除了整數以外,還能支援真分數的四則運算。
對實現的功能進行描述,並且對實現結果要求截圖。
主要功能:運算小學四則運算,可以選擇加減乘除以及混合運算。
設計思想:首先思考運算數字範圍,考慮小學生的運算能力,然後分類運算方法,分為加減乘除混合運算,
然後可以選擇是繼續做題還是退出程式,可以總結做對或者做錯的題數,方便計算正確以及錯誤的題數。
二 程式**:2017-09-16
#include#include#include
#include
#include
#include
int right = 0
;int wrong = 0
;char
getsignal();
int calculateintegerresult(int num1, int num2, char
signal);
//int getnumber();
void
dointegersubject();
void falseprint(int
);void correctprint(int
);/*
char getsignal()
;srand((unsigned)time(null));
return signal[rand() % 4];}*/
char
getsignal()}/*
int getnumber()
*/int calculateintegerresult(int num1, int num2, char
signal)
returnt;}
void calculatemarkresult(int num1, int num2, int num3, int num4, char signal, int mark[5
])
else
break
;
case'-
':if (num2 ==num4)
else
break
;
case'*
':mark[
0] = num1*num3;
mark[
1] = num2*num4;
break
;
case'/
':mark[
0] = num1*num4;
mark[
1] = num2*num3;
break
;
default
: printf(
"運算子不符合規則\n");
break
; }
}void
dointegersubject()
}printf(
"please do blew problem:\n");
printf(
"%d %c %d=
", a, signal, b);
//giveranswer = _getch();
scanf_s("
%d", &giveranswer);
fflush(stdin);
if (calculateintegerresult(a, b, signal) ==giveranswer)
else
}void
domarksubject()
if (a break
; }
while (1
)
if (c break
; }
/*a = rand() % 100 + 1;
b = rand() % 100 + 1;
c = rand() % 100 + 1;
d = rand() % 100 + 1;
signal = getsignal();
if (b == 0 || a>b)
if (d == 0 || c>d)
*/printf(
"please do blew problem:\n");
printf(
"%d/%d %c %d/%d=
", a, b, signal, c, d);
//giveranswer = _getch();
i = 0
;
while (1
)
x = 0
;
for (j = 0; j < i; j++)
scanf_s("%d
", &y);
calculatemarkresult(a, b, c, d, signal, result);
//scanf_s("%d", &givernumber[i]);
fflush(stdin);
if (x == result[0] && y == result[1
])
else}//
回答正確列印資訊
void correctprint(int
num)}//
回答錯誤列印資訊
void falseprint(int
num)
}void
main()
total = right +wrong;
printf(
"你一共答了:%d道題其中答對了%d 道答錯了%d道\n
", total, right, wrong);
break
;
case2:
while (right >=wrong)
total = right +wrong;
printf(
"你一共答了:%d道題其中答對了%d 道答錯了%d道\n
", total, right, wrong);
break
; }
system(
"pause");
}printf(
"\n\t\t\t1.重新選擇?\n");
printf(
"\n\t\t\t2.退出運算?\n");
scanf_s("%d
", &choice1);
if (choice1 == 1
)
else
if (choice1 == 2
)
else
printf(
"抱歉!,你輸入的指令有誤!請重新輸入!\n");
system(
"pause");
}
隨機生成四則運算
心得 在程式設計過程中遇到的最大的問題就是隨機數的產生問題。在c語言中函式rand 可以用來產生隨機數,但是它缺不是乙個真正的隨機數,需要用到srand 函式。所以我用srand unsigned time null 這段 來解決隨機數的產生問題。rand 的隨機範圍在0到32767之間。在乙個fo...
隨機生成四則表示式2
接著上次的程式,老師又給二柱子增加了幾個條件,對程式再做進一步的改進,要求滿足如下條件 1.題目避免重複。2.可制定。數量 列印方式 3.可以控制下列引數 如下是對本題的分析 針對問題,首先要進行拆分。從最小的功能開始,然後依次實現。首先還是生成一道兩個數的四則表示式,這個不難實現。困難的是如何生成...
關於生成四則表示式
關於出題數量和列印方式的限制解決。使用兩個引數num line,num限制出題數量,line限制輸出時每行輸出數量。將for迴圈設為無限迴圈,在迴圈的最後讓四組數量相加等於num即可break跳出迴圈。最後乙個限制有很多要求,目前完成了除分數的前幾個要求。解決方法就是在for迴圈剛開始時,兩個引數和...