用C语言编程随机产生一道包含加减乘除的数学题,输 入用户答案,用户能得到结果正确或错误的信息
时间: 2025-02-22 19:30:47 浏览: 31
在C语言中,你可以使用stdlib.h库中的rand()函数以及time()函数生成随机数,配合printf和scanf用于输入输出。下面是一个简单的示例,展示如何创建一个随机的四则运算题目并获取用户的答案:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// 定义运算符数组和它们对应的计算函数
enum Operation { ADD, SUBTRACT, MULTIPLY, DIVIDE };
int (*operations[])(double, double) = {
[ADD] = add,
[SUBTRACT] = subtract,
[MULTIPLY] = multiply,
[DIVIDE] = divide,
};
// 函数原型
double add(double a, double b);
double subtract(double a, double b);
double multiply(double a, double b);
double divide(double a, double b);
// 根据随机选择的运算符生成题目
void generate_question(double *a, double *b) {
srand(time(0)); // 初始化随机种子
enum Operation op = (enum Operation)(rand() % 4); // 随机选择运算符
switch (op) {
case ADD:
printf("请计算 %.2f + %.2f =", *a, *b);
break;
case SUBTRACT:
printf("请计算 %.2f - %.2f =", *a, *b);
break;
case MULTIPLY:
printf("请计算 %.2f * %.2f =", *a, *b);
break;
case DIVIDE:
if (*b != 0)
printf("请计算 %.2f / %.2f =", *a, *b);
else
printf("注意:除数不能为0!");
break;
}
}
// 用户输入处理
double get_user_answer() {
double user_input;
scanf("%lf", &user_input);
return user_input;
}
// 运算函数
double add(double a, double b) { return a + b; }
double subtract(double a, double b) { return a - b; }
double multiply(double a, double b) { return a * b; }
double divide(double a, double b) { return a / b; }
int main() {
double num1, num2;
generate_question(&num1, &num2);
double correct_answer = operations[rand() % 4](num1, num2);
double user_answer = get_user_answer();
// 判断答案是否正确,并给出反馈
if (fabs(user_answer - correct_answer) <= 1e-6) {
printf("答对了! 正确答案是 %.2f\n", correct_answer);
} else {
printf("错了! 正确答案应该是 %.2f\n", correct_answer);
}
return 0;
}
```
这个程序首先会生成一个包含加、减、乘、除的随机运算题目,然后获取用户的输入并计算正确答案。如果用户答案与正确答案的差别很小(这里设定为误差范围1e-6),则认为答案正确。
阅读全文
相关推荐


















