c语言实现4则运算的随机出题和测试,菜单输入,答对有加分答错有减分并显示答案
时间: 2023-06-16 13:07:51 浏览: 87
以下是一个简单的C语言实现4则运算的随机出题和测试的代码,包括菜单输入,答对有加分答错有减分并显示答案的功能:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int choice, answer, userAnswer, score = 0;
srand(time(NULL)); // 设置随机数种子
do {
// 显示菜单
printf("请选择:\n");
printf("1. 加法\n");
printf("2. 减法\n");
printf("3. 乘法\n");
printf("4. 除法\n");
printf("5. 退出\n");
scanf("%d", &choice);
if (choice >= 1 && choice <= 4) {
// 生成两个随机数
int num1 = rand() % 100, num2 = rand() % 100;
// 根据用户选择生成对应的运算符和答案
char op;
switch (choice) {
case 1:
op = '+';
answer = num1 + num2;
break;
case 2:
op = '-';
answer = num1 - num2;
break;
case 3:
op = '*';
answer = num1 * num2;
break;
case 4:
op = '/';
// 避免除数为0
while (num2 == 0) {
num2 = rand() % 100;
}
answer = num1 / num2;
break;
}
// 输出题目并读取用户答案
printf("%d %c %d = ", num1, op, num2);
scanf("%d", &userAnswer);
// 判断答案是否正确,计算分数并输出答案
if (userAnswer == answer) {
printf("回答正确!\n");
score++;
} else {
printf("回答错误!正确答案为 %d\n", answer);
score--;
}
} else if (choice == 5) {
// 退出程序
printf("您的最终得分为 %d,再见!\n", score);
break;
} else {
// 输入错误,重新进入菜单选择
printf("输入的选项有误,请重新选择!\n");
}
} while (1);
return 0;
}
```
程序中使用了 `srand()` 函数和 `rand()` 函数来生成随机数。 `srand()` 函数设置随机数种子, `rand()` 函数返回一个伪随机数。由于 `rand()` 函数返回的是一个在范围 `[0, RAND_MAX]` 内的整数,因此使用取模运算得到一个在范围 `[0, 99]` 内的随机数。
程序中使用了 `switch` 语句根据用户选择生成对应的运算符和答案。对于除法运算,程序使用 `while` 循环避免除数为0的情况。
程序中使用了 `do-while` 循环来实现菜单选择,并使用 `break` 语句实现退出程序。答对加分,答错减分,最终输出得分。
阅读全文