C语言小学数学加减乘除

#include
#include
#include
#include

int num1,num2,count,countRc,answer,key,score=0,math_num,math_num1,math_num2;

void random1()
{
num1= rand()%math_num;
num2= rand()%math_num;
}

void random2()
{
num1= rand()%math_num1;
num2= rand()%math_num2;
}

void s()
{
if (num1>=num2)
{
key= num1 - num2;
printf("%d-%d = ",num1,num2);
}
else if(num1+num2>math_num)
{
random1();
s();
}
else
{ key= num1 + num2;
printf("%d+%d = ",num1,num2);
}
}
void ss()
{
key= num1 * num2;
printf("%d×%d = ",num1,num2);
}
void sss()
{
if(num2!=0&&num1 % num2==0)
{
key = num1 / num2;
printf("%d÷%d = ",num1,num2);
}
else
{
random2();
sss();
}
}

void addAndSub1()
{
math_num=10;
system("cls");
srand((unsigned)time(NULL));
printf("请输入题数:");
scanf("%d",&count);
countRc = count;
while (count-->0)
{
random1();
s();
scanf("%d",&answer);
if (key==answer)
{
printf("答对了! \n");
score++;
}
else
{
printf("答错咯T^T \b");
printf("正确答案是 [%d].\007\n",key);
}
}
printf("一共%d个题目,答对了%d道题,答错了%d道题.\n正确率为%2.1f%%.\n",countRc,score,countRc-score,(float)score/countRc*100);
fflush(stdin);
getchar();

}
void addAndSub2()
{
system("cls");
srand((unsigned)time(NULL));
printf("请输入题数:");
scanf("%d",&count);
countRc = count;
int q=count/2;
int w=(count-q)/2;
int e=count-q-w;
while (q-->0)
{
math_num=1000;
random1();
s();
scanf("%d",&answer);
if (key==answer)
{
printf("答对了! \n");
score++;
}
else
{
printf("答错咯T^T \b");
printf("正确答案是 [%d].\007\n",key);
}
}
while(e-->0)
{
math_num=10;
random1();
ss();
scanf("%d",&answer);
if (key==answer)
{
printf("答对了! \n");
score++;
}
else
{
printf("答错咯T^T \b");
printf("正确答案是 [%d].\007\n",key);
}
}
while(w-->0)
{
math_num1=100;
math_num2=10;
random2();
sss();
scanf("%d",&answer);
if (key==answer)
{
printf("答对了! \n");
score++;
}
else
{
printf("答错咯T^T \b");
printf("正确答案是 [%d].\007\n",key);
}
}
printf("一共%d个题目,答对了%d道题,答错了%d道题.\n正确率为%2.1f%%.\n",countRc,score,countRc-score,(float)score/countRc*100);
fflush(stdin);
getchar();
}
void addAndSub3()
{
system("cls");
srand((unsigned)time(NULL));
printf("请输入题数:");
scanf("%d",&count);
countRc = count;
int q=count/2;
int w=(count-q)/2;
int e=count-q-w;
while (q-->0)
{
math_num=10000;
random1();
s();
scanf("%d",&answer);
if (key==answer)
{
printf("答对了! \n");
score++;
}
else
{
printf("答错咯T^T \b");
printf("正确答案是 [%d].\007\n",key);
}
}
while(e-->

0)
{
math_num=100;
random1();
ss();
scanf("%d",&answer);
if (key==answer)
{
printf("答对了! \n");
score++;
}
else
{
printf("答错咯T^T \b");
printf("正确答案是 [%d].\007\n",key);
}
}
while(w-->0)
{
math_num1=1000;
math_num2=100;
random2();
sss();
scanf("%d",&answer);
if (key==answer)
{
printf("答对了! \n");
score++;
}
else
{
printf("答错咯T^T \b");
printf("正确答案是 [%d].\007\n",key);
}
}
printf("一共%d个题目,答对了%d道题,答错了%d道题.\n正确率为%2.1f%%.\n",countRc,score,countRc-score,(float)score/countRc*100);
fflush(stdin);
getchar();
}

void main()
{
system("color 2F");
printf("*****************************************************************************\n");
char c;
printf(" 输入“0”退出,按其他任意键进入系统\n");
printf("*****************************************************************************\n");
while((getchar())!='0')
{
system("cls");
printf("*****************************************************************************\n");
printf("\n");
printf(" 请选择您要进行挑战的年级段!\n");
printf(" 1、低年段\n");
printf(" 2、中年段\n");
printf(" 3、高年段\n");
printf("\n");
printf("*****************************************************************************\n");
c=getchar();
system("cls");
switch(c)
{
case '1':addAndSub1();break;
case '2':addAndSub2();break;
case '3':addAndSub3();break;
default:printf("出错咯,请重新输入:");break;

}
printf("输入0退出,按其他任意键重新选择年段进行挑战!");
}
system("cls");
}

相关文档
最新文档