代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void menu()
{
system("cls");
printf("************************************\n");
printf("* 欢迎使用小学数学测试系统 *\n");
printf("* 1.加法 *\n");
printf("* 2.减法 *\n");
printf("* 3.乘法 *\n");
printf("* 4.除法 *\n");
printf("* 0.退出 *\n");
printf("************************************\n");
printf("请输入选项:");
}
//生成1-fw之间的随机数
void rand(int fw,int *a,int* b)
{
int t;
*a = rand()%fw+1;
*b = rand()%fw+1;
//保证a大于等于b
if(*a < *b)
{
t=*a;
*a =*b;
*b = t;
}
}
int main()
{
int opt;
int a,b,res;
int njia=0,njiaright = 0;
int njian=0,njianright=0;
int ncheng=0,nchengright=0;
int nchu=0,nchuright=0;
int flag = 1;
srand((unsigned int)time(NULL));
while(flag)
{
menu();
scanf("%d",&opt);
switch(opt)
{
case 1:
njia++;
rand(50,&a,&b);
printf("%d + %d = ",a,b);
scanf("%d",&res);
if(res == a+b)
{
njiaright++;
printf("正确!\n");
}else
printf("错误!\n");
break;
case 2:
njian++;
rand(50,&a,&b);
printf("%d - %d = ",a,b);
scanf("%d",&res);
if(res == a-b)
{
njianright++;
printf("正确!\n");
}else
printf("错误!\n");
break;
case 3:
ncheng++;
rand(50,&a,&b);
printf("%d -*%d = ",a,b);
scanf("%d",&res);
if(res == a*b)
{
nchengright++;
printf("正确!\n");
}else
printf("错误!\n");
break;
case 4:
nchu++;
rand(50,&a,&b);
printf("%d / %d = ",a,b);
scanf("%d",&res);
if(res == a/b)
{
nchu++;
printf("正确!\n");
}else
printf("错误!\n");
break;
case 0:
flag = 0;
break;
}
}
printf("总题数:%d 正确率:%d%%\n",(njia+njian+ncheng+nchu),100*(njiaright+njianright+nchengright+nchuright)/(njia+njian+ncheng+nchu));
printf("加法个数:%d 正确个数:%d\n",njia,njiaright);
printf("减法个数:%d 正确个数:%d\n",njian,njianright);
printf("乘法个数:%d 正确个数:%d\n",ncheng,nchengright);
printf("除法个数:%d 正确个数:%d\n",nchu,nchuright);
return 0;
}