面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。
功能要求:
1、电脑随机出10道题,每题10分,程序结束时显示学生得分;
2、确保算式没有超出1-2年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出0~50的范围,负数更是不允许的;
3、每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;
4、对于每道题,学生第一次输入正确答案得10 分,第二次输入正确答案得7 分,第三次输入正确答案得5 分,否则不得分;
5、总成绩90 以上显示“SMART” ,80-90 显示“GOOD”,70-80 显示“OK”,60-70 显示“PASS”,60 以下“TRY AGAIN”
#include<stdio.h>
#include<stdlib.h>///包含rand()
#include <time.h>///srand()
void main() {
int left, right,mid,result=0,answer;///left加减法左边数字 right加减法右边数字 result真实结果 answer用户输入的结果
int temp = 1,chance=1,grade=0;///temp算术式编号 chance用户回答次数 grade用户成绩
for (int i = 0; i < 10; i++) {
while (1){
srand(time(NULL));///获取随机数的种子
left = rand() % 51;///获取随机数
right = rand() % 51;
mid = rand() % 51;///获取一个数用来决定加法还是减法
if (mid % 2 == 0) result = left + right;///如果mid是偶数则加法
if (mid % 2 != 0 && left != 0) result = left - right;
if (result >= 0 && result <= 50) { break; }///真实结果符合要求则进行输出
}
if (mid % 2 == 0) {
printf("(%d) %d+%d=", temp, left, right);
scanf("%d", &answer);
if (answer == result) {
printf("回答正确\n");
temp++;
grade += 10; ///第一次回答正确 成绩加十分
}
if (answer != result) {
printf("回答错误,请重新输入\n");
printf("(%d) %d+%d=", temp, left, right);
scanf("%d", &answer);
if (answer == result) {
printf("回答正确\n");
temp++;
grade += 7; ///第二次回答正确 成绩加七分
}
else {
printf("回答错误,请重新输入\n");
printf("(%d) %d+%d=", temp, left, right);
scanf("%d", &answer);
if (answer == result) {
printf("回答正确\n");
temp++;
grade += 5; ///第三次加五分
}
else {
printf("回答错误,正确答案:%d\n", result);///三次机会用完 输出正确答案
temp++;
}
}
}
}
else {///减法同加法
printf("(%d) %d-%d=", temp, left, right);
scanf("%d", &answer);
if (answer == result) {
printf("回答正确\n");
temp++;
grade += 10;
}
if (answer != result) {
printf("回答错误,请重新输入\n");
printf("(%d) %d-%d=", temp, left, right);
scanf("%d", &answer);
if (answer == result) {
printf("回答正确\n");
temp++;
grade += 7;
}
else {
printf("回答错误,请重新输入\n");
printf("(%d) %d-%d=", temp, left, right);
scanf("%d", &answer);
if (answer == result) {
printf("回答正确\n");
temp++;
grade += 5;
}
else {
printf("回答错误,正确答案:%d\n", result);
temp++;
}
}
}
}
}
///进行成绩判断并输出
if (grade >= 90) printf("SMART\n");
else if (grade >= 80 && grade < 90) printf("GOOD\n");
else if (grade >= 70 && grade < 80)printf("OK\n");
else if (grade >= 60 && grade < 70)printf("PASS\n");
else printf("TRY-AGAIN\n");
}
欢迎关注
掘金:https://juejin.cn/user/4156573190724030
Github:https://github.com/zhubingran
CSDN:https://blog.csdn.net/qq_43118757
QQ:1330022055