# include & ltstdlib.h & gt
# include & lttime.h & gt
//在區間[a,b]生成壹個隨機數
#定義RANDOM(a,b) (rand()%((b+1)-(a)) + (a))
//生成1-20的整數。如果妳想改變算術範圍,妳可以修改這個宏的參數。
# define GEN _ VALUE()RANDOM(1,20)
int main()
{
int v1,v2,t,r,a;
char op,ops[] = { '+','-',' * ','/' };
srand((無符號)時間(空));//用當前時間初始化隨機數種子。
Printf("請回答Ctrl+C結束...\ n ");
while(1)
{
v 1 = GEN _ VALUE();//隨機生成第1次運算。
v2 = GEN _ VALUE();//隨機生成第二個算術。
op = ops[ RANDOM(0,3)];//隨機決定是哪個運算符。
//確保第1個算術大於第二個算術,如果不需要就刪除這個判斷。
if(v 1 & lt;v2)
{
t = v 1;
v 1 = v2;
v2 = t;
}
//如果運算符是除法,且v1不能被v2整除,則重新生成題目。
if(op = = '/' & amp;& ampv1%v2!=0 )
繼續;
//計算正確的結果
開關
{
case '+':a =(float)v 1+(float)v2;打破;
case '-':a =(float)v 1-(float)v2;打破;
case ' * ':a =(float)v 1 *(float)v2;打破;
case '/':a =(float)v 1/(float)v2;打破;
}
//輸出公式
printf( "%d%c%d= ",v1,op,v2);
//等待輸入結果
scanf( "%d ",& ampr);
如果(r == a)
Printf("賓果!\ n \ n ");
其他
Printf("回答錯誤!正確答案是:%d\n\n ",a);
}
}