在上篇文章中,加入了对话系统,以及让系统随机生成加减乘除四则运算。代码如下:
#include#include #include #include 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; } }
代码运行:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)