用c实现:面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。 功能要求: (1) 电脑随机出10道题,每题10分,程序结束时显示学生得分; (2)确保算式没有超出 1~2年级水平,只允许进行50以内的加减法,不允许两数之和或之差超出0~50,负数更是不允许; (3)每道题学生有三次机会输入答案, 当学生输入错误答案是,提醒学生重新输入,如果三次机会结束泽输出正确答案; (4) 对于每道题,学生第一 次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分; (5)总成绩 90以上显示“SMART"。80~90显示GOOD", 70~80显示"PASS"。60以下TRYAGAIN".
时间: 2024-02-25 22:51:50 浏览: 133
好的,我可以为你提供这个程序的基本框架,你可以在此基础上进行开发和完善。
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int score = 0;
int i, j, k, ans, input, count;
srand(time(NULL)); // 设置随机数种子
for (i = 1; i <= 10; i++) // 循环10次,共出10道题
{
j = rand() % 50 + 1; // 随机生成两个整数
k = rand() % 50 + 1;
if (j + k <= 50) // 确保两数之和不超过50
ans = j + k;
else
ans = j - k; // 如果两数之和超过50,则进行减法运算
printf("第%d题:%d + %d = ", i, j, k);
count = 0;
do // 循环读入学生的答案,最多三次机会
{
scanf("%d", &input);
count++;
if (input == ans) // 如果答案正确,则跳出循环
break;
else if (count == 3) // 如果三次机会用完,则输出正确答案
{
printf("正确答案是%d\n", ans);
break;
}
else // 否则提醒学生重新输入
printf("回答错误,请重新输入:");
} while (count < 3);
// 根据学生的答题情况给分
if (input == ans)
{
if (count == 1)
score += 10;
else if (count == 2)
score += 7;
else
score += 5;
}
}
// 根据总分输出评价
printf("你的得分是:%d\n", score);
if (score >= 90)
printf("SMART\n");
else if (score >= 80)
printf("GOOD\n");
else if (score >= 70)
printf("PASS\n");
else
printf("TRYAGAIN\n");
return 0;
}
```
希望这个程序能够帮助到你!
阅读全文