四则运算练习器 三维数组 C语言
时间: 2023-08-18 12:10:32 浏览: 49
以下是一个基于三维数组的四则运算练习器的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
// 定义题目数量和数字范围
const int NUM_OF_QUESTIONS = 5;
const int NUM_RANGE = 10;
// 随机数生成器种子
srand(time(NULL));
// 生成题目
int questions[NUM_OF_QUESTIONS][3];
char operators[NUM_OF_QUESTIONS];
for (int i = 0; i < NUM_OF_QUESTIONS; i++) {
// 随机生成运算符
int operatorIndex = rand() % 4;
switch (operatorIndex) {
case 0:
operators[i] = '+';
break;
case 1:
operators[i] = '-';
break;
case 2:
operators[i] = '*';
break;
case 3:
operators[i] = '/';
break;
}
// 随机生成数字
for (int j = 0; j < 2; j++) {
questions[i][j] = rand() % NUM_RANGE;
}
// 根据运算符计算答案
switch (operators[i]) {
case '+':
questions[i][2] = questions[i][0] + questions[i][1];
break;
case '-':
questions[i][2] = questions[i][0] - questions[i][1];
break;
case '*':
questions[i][2] = questions[i][0] * questions[i][1];
break;
case '/':
questions[i][2] = questions[i][0] / questions[i][1];
break;
}
}
// 输出题目
printf("请回答以下 %d 道数学题:\n", NUM_OF_QUESTIONS);
for (int i = 0; i < NUM_OF_QUESTIONS; i++) {
printf("%d %c %d = ?\n", questions[i][0], operators[i], questions[i][1]);
}
// 用户输入答案
int answers[NUM_OF_QUESTIONS];
for (int i = 0; i < NUM_OF_QUESTIONS; i++) {
printf("请输入第 %d 题的答案:", i + 1);
scanf("%d", &answers[i]);
}
// 检查答案并输出结果
int correctNum = 0;
for (int i = 0; i < NUM_OF_QUESTIONS; i++) {
if (answers[i] == questions[i][2]) {
correctNum++;
printf("第 %d 题回答正确!\n", i + 1);
} else {
printf("第 %d 题回答错误,正确答案为 %d。\n", i + 1, questions[i][2]);
}
}
printf("您一共回答正确了 %d 道题,正确率为 %.2f%%。\n", correctNum, (float)correctNum / NUM_OF_QUESTIONS * 100);
return 0;
}
```
这个程序会生成 5 道随机的加减乘除运算题目,数字范围在 0 到 10 之间。程序会先输出题目,然后等待用户输入答案,最后检查答案并输出结果。程序使用了一个二维数组来存储题目和答案,运算符则使用了一个 char 类型的一维数组。