c语言面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。。 功能要求: (1)电脑随机出10道题,每题10分,程序结束时显示学生得分; (2)确保算式没有超出1~2年级的水平,只允许进行50以内的加减法,不允许两数之和或 之差超出0~50的范围,负数更是不允许的; (3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果 三次机会结束则输出正确答案; 4)对于每道题,学生第一次输入正确答案得10分,第立次输入正确答案得7分,第三次 输入正确答案得5分,否则不得分; (5)总成绩90以上显示'SMAFT”80-90显示 G000”.70.80 显示“OK”60-70显示“PASS” 60以下“TRYAGAIN?
时间: 2024-03-05 09:55:13 浏览: 61
好的,以下是C语言代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
srand(time(NULL)); // 设置随机种子
int score = 0; // 学生得分
for (int i = 1; i <= 10; i++) { // 10道题
int num1 = rand() % 50 + 1; // 随机数1
int num2 = rand() % 50 + 1; // 随机数2
int result; // 算式结果
char symbol; // 运算符
if (rand() % 2 == 0) { // 50%的几率出现加法算式
symbol = '+';
result = num1 + num2;
} else { // 50%的几率出现减法算式
symbol = '-';
result = num1 - num2;
if (result < 0) { // 确保算式结果不为负数
int temp = num1;
num1 = num2;
num2 = temp;
result = num1 - num2;
}
}
printf("%d. %d %c %d = ", i, num1, symbol, num2);
int answer; // 学生输入的答案
for (int j = 1; j <= 3; j++) { // 三次机会
scanf("%d", &answer);
if (answer == result) { // 答案正确
if (j == 1) {
score += 10;
} else if (j == 2) {
score += 7;
} else {
score += 5;
}
printf("恭喜你,答案正确!\n");
break;
} else { // 答案错误
if (j == 3) {
printf("很遗憾,你的三次机会已用完,正确答案为%d\n", result);
} else {
printf("答案错误,请重新输入(还有%d次机会):", 3 - j);
}
}
}
}
printf("你的得分为%d\n", score);
if (score >= 90) {
printf("SMAFT\n");
} else if (score >= 80) {
printf("G000\n");
} else if (score >= 70) {
printf("OK\n");
} else if (score >= 60) {
printf("PASS\n");
} else {
printf("TRYAGAIN?\n");
}
return 0;
}
```
请确保编译器的字符集为UTF-8,否则可能无法正常显示算式中的运算符。
阅读全文