C语言小学生考试

 2024-01-23 03:02:56  阅读 0

对于1至2年级的小学生,要求学生随机选择两个整数并进行加减运算以形成方程。

功能要求:

c语言二次机会算法_算法程序语言_算法的语言有哪几种

1、计算机随机提出10个问题,每题10分,程序结束时显示学生的分数;

2. 确保计算不超过1-2级的水平。 只允许50以内的加法和减法。 两个数的和或差不允许超过0到50的范围,且不允许为负数;

算法程序语言_c语言二次机会算法_算法的语言有哪几种

3. 学生有 3 次机会输入每个问题的答案。 当学生输入错误答案时,系统会提醒学生重新输入。 如果三个机会结束,则输出正确答案;

4. 每道题,第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分。 否则,不会获得积分;

算法程序语言_c语言二次机会算法_算法的语言有哪几种

5. 总分90分以上显示“SMART”,80-90分显示“GOOD”,70-80分显示“OK”,60-70分显示“PASS”,总分低于60分显示“PASS” “再试一次”

#include
#include///包含rand()
#include ///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");
}

标签: 答案 输入 正确

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码