儿童100以内的加减乘除法游戏训练

可以随机产生两个操作数,进行加、减、乘、除。当完成设定题数时,根据
正确率进行评定等级,如果正确率大于90%提示出“宝宝你很棒哦!”并弹出
10颗小星星,
大于70%小于90%提示出“宝宝你很厉害还是在练习练习”并弹
出7颗小星星和按Y键继续,如果正确率小于70%提示出“宝宝加油哦还是
在练习练习”并弹出5颗小星星和按Y键继续,小星星可以进行累计。
3)程序可以按N键退出,在退出时提示小朋友获得的小星星个数。

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m

#include <stdio.h>
int main(void)
{
int i = 0, a, b, ret, user_ret;
char symbol; // 符号, 0(+), 1(-), 2(*), 3(/)
int count, right = 0;
srand(time(NULL)); // 随机种子
while (1) {
a = rand() % 100; // 随机取得数字1
b = rand() % 100; // 随机取得数字2
symbol = rand() % 4; // 随机取得运算符号
switch (symbol) { // 根据符号计算机先算出结果,并将数字转换成数学运算符号
case 0 : { // 加
ret = a + b; // 先算得结果
symbol = '+'; // 符号
} break;
case 1 : { // 减
ret = a - b;
symbol = '-';
} break;
case 2 : { // 乘
ret = a * b;
symbol = '*';
} break;
case 3 : { // 除
ret = a / b;
symbol = '/';
}
}
printf("%d%c%d=", a, symbol, b); // 输出公式给用户看
count = 0; // 每道题重做次数都清0
while (1) {
scanf("%d", &user_ret);
if (user_ret == ret) { // 判断用户回答与计算机结果是否相同
printf("回答正确\n");
right ++; // 正确数加1
break; // 跳出内循环
}
printf("错误,再次输入:");
count++; // 答错计数+1
if (count == 3) { // 连续错了3次
printf("正确答案是:%d\n", ret);
break; // 跳出内循环
}
}
i++; // 已答题数+1
printf("是否继续(y/n)?\n");
getchar(); // 吃掉缓冲区的换行符, 不太保险的做法, 正确做法应该fgets代替scanf
scanf("%c", &symbol); // 接收用户的选择结果
if (symbol != 'y' && symbol != 'Y') // 如果不是输入的'Y'或'y'就退出,否则继续下一题 .
break;
}
// 计算结果, 其中i是总共的出题数, right为做对数,
printf("练习结束, 共做题%d, 正确%d, 正确率%.2f%%\n", i, right, (double)right / i * 100);
return 0;
}