在上篇文章中,加入了对话系统,以及让系统随机生成加减乘除四则运算。代码如下:
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<time.h>
void Date();//产生随机数函数 ASCLL码:+:43 -:45 *:42 /:47
void Print();//打印提示词函数
void Key();//用户输入答案函数
void Judge();//判断答案是否正确
void CAI_R();//CAI对话系统(正确)
void CAI_F();//CAI对话系统(错误)
int a, b;//随机生成的算数随机数
int c;//控制随机四则运算的随机数
int d;//控制CAI系统随机数
int k1,k2;//用户输入的答案,k2记为用户输入除法运算的余数
int i;//记录用户输入次数
int count = 0;//记录得分
int j;//记录题目个数
int x;//记录做题次数(一次十道题)
int main()
{
for (;;)
{
for (j = 0; j <= 9; j++)
{
Date();
Print();
Judge();
printf("\n");
printf("\n");
}
printf("您的正确率为:%d%% \n", count);
if (count <= 75)
{
printf("正确率不足75%%,重新开始\n");
count = 0;
}
else
{
break;
}
}
return 0;
}
void Date()
{
srand((unsigned)time(NULL));//设置随机数种子
a = rand() % 10+1;
b = rand() % 10+1;
c = rand() % 4;
d = rand() % 4;
}
void Print()
{
printf("请完成10道运算题目(除法运算请分别输入其商和余数):\n");
if (c == 0)
{
printf("%d + %d = ?\n", a, b);
}
if (c == 1)
{
printf("%d - %d = ?\n", a, b);
}
if (c == 2)
{
printf("%d × %d = ?\n", a, b);
}
if (c == 3)
{
printf("%d ÷ %d = ?\n", a, b);
}
printf("请输入题目答案(回车表示输入完成):\n");
}
void Key()
{
if (c == 0 || c == 1 || c == 2)
{
scanf_s("%d", &k1);//用户输入的答案
}
else
{
scanf_s("%d", &k1);//用户输入的答案
scanf_s("%d", &k2);//记录余数
}
}
void Judge()
{
Key();
//------------------------------判断加法
if (c == 0)
{
if (k1 == a + b)
{
printf("回答正确!\n");
printf("\n");
count += 10;
CAI_R();
printf("当前分数:%d", count);
}
else
{
printf("回答错误!\n");
printf("\n");
CAI_F();
printf("当前分数:%d", count);
}
}
//------------------------------判断减法
if (c == 1)
{
if (k1 == a - b)
{
printf("回答正确!\n");
printf("\n");
count += 10;
CAI_R();
printf("当前分数:%d", count);
}
else
{
printf("回答错误!\n");
printf("\n");
CAI_F();
printf("当前分数:%d", count);
}
}
//------------------------------判断乘法
if (c == 2)
{
if (k1 == a * b)
{
printf("回答正确!\n");
printf("\n");
count += 10;
CAI_R();
printf("当前分数:%d", count);
}
else
{
printf("回答错误!\n");
printf("\n");
CAI_F();
printf("当前分数:%d", count);
}
}
//------------------------------判断除法
if (c == 3)
{
if (k1 == a / b && k2 == a % b )
{
printf("回答正确!\n");
printf("\n");
count += 10;
CAI_R();
printf("当前分数:%d", count);
}
else
{
printf("回答错误!\n");
printf("\n");
CAI_F();
printf("当前分数:%d", count);
}
}
}
void CAI_R()
{
switch (d)
{
case 0:
printf("做的不错!再接再厉。\n");
break;
case 1:
printf("很好!继续加油哦。\n");
break;
case 2:
printf("Good!\n");
break;
case 3:
printf("你很棒哦,坚持就是胜利!");
break;
}
}
void CAI_F()
{
switch (d)
{
case 0:
printf("别灰心,慢慢来。\n");
break;
case 1:
printf("下次一定可以的!\n");
break;
case 2:
printf("真遗憾,但是你还会有机会的。\n");
break;
case 3:
printf("别急,你一定行!\n");
break;
}
}
代码运行: