#include <stdio.h>
#include <stdlib.h>
#include<time.h>
int show()//定义出随机计算式,通过调用系统的时间进行随机出加减式子
{
int a,b,t,op,answer0;//定义,a是第一个数,b是第二个,t是用来替换a和b的值,防止出现a小于b计算为负数的情况
//op是用来随机出加法(1)或随机出减法(2) answer0是系统计算出的正确答案,为了给后续的 判断输入是否和系统的正确答案一致。
srand(time(0));//先记住,这个是一个随机种子,通过提取计算机的time的值,然后让rand得到随机值,然后在后续的a,b,c,和op来赋予随机值rand。
a=rand()%20+1;
b=rand()%20+1;
op=rand()%5+1;
switch(op)//用来将op的值来随机出加法或者减法运算。
{
case 1://通过随机函数出1,来举出加法的随即运算。
printf("%d+%d=",a,b);
answer0=a+b;
break;
case 2://通过随机函数出2,来举出减法法的随即运算。
if(a<b)//防止a小于b出现负数的调换。
{
t=a;
a=b;
b=t;
}
printf("%d-%d=",a,b);
answer0=a-b;
break;
case 3://通过随机函数3(op),来举出除法运算。
printf("%d/%d=",a,b);
answer0=a/b;
break;
case 4://通过随机函数4(op) 来举出乘法运算。
printf("%d*%d=",a,b);
answer0=a*b;
break;
}
return (answer0);//将系统得到的函数的值answer回到定义的int中。
}
int Test(int t_answer1,int t_answer0)//定义判断出输入结果是否正确的函数(答案)
{
if(t_answer1==t_answer0)//定义和调用answer1和answer0的值来进行对比判断是否相同,然后输出1或者2,并在后续的定义中用来进行加分计算(个人总成绩)。
{
printf("correct!\n");
return 1;
}
else
{
printf("Not correct!\n");
return 0;
}
}
int main()//定义输入结果与答案是否一致。
{
int i,an_flag;//定义循环和总成绩判断数,来给score加分或者不加分。
int answer1,answer2,score=0;
for(i=0;i<10;i++)
{
answer1=show();
scanf("%d",&answer2);
an_flag=Test(answer1,answer2);//由上面的返回值可知,an_flag来判断是否可以加10分或者不加分。
if(an_flag==1)
score+=10;
}
printf("\nCorrect score:%d\n",score);//最终输出得到的总分,或者说总成绩。
return 0;
}
因为应用到整型,所以在除法运算的时候,小于1的时候,输出的answer0是0。
并且随机种子(time)不一定能随机出数,所以直接输入0即可跳过当前题目。
感谢观看。