使用三维数组 四则运算训练器 C语言
时间: 2023-10-06 22:08:03 浏览: 44
下面是一个简单的使用三维数组实现四则运算训练器的C语言代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int i, j, k, ans, userAns, count = 0;
char op[4] = {'+', '-', '*', '/'};
int a[10][10][2];
// 随机生成10组题目
srand((unsigned)time(NULL));
for (i = 0; i < 10; i++) {
for (j = 0; j < 10; j++) {
k = rand() % 4;
a[i][j][1] = op[k];
switch (op[k]) {
case '+':
a[i][j][0] = rand() % 101;
a[i][j][2] = rand() % 101;
break;
case '-':
a[i][j][0] = rand() % 101;
a[i][j][2] = rand() % a[i][j][0] + 1;
break;
case '*':
a[i][j][0] = rand() % 11;
a[i][j][2] = rand() % 11;
break;
case '/':
a[i][j][2] = rand() % 10 + 1;
a[i][j][0] = a[i][j][2] * (rand() % 10 + 1);
break;
}
}
}
// 输出题目并获取用户答案
for (i = 0; i < 10; i++) {
printf("第%d组题目:\n", i + 1);
for (j = 0; j < 10; j++) {
printf("%d %c %d = ", a[i][j][0], a[i][j][1], a[i][j][2]);
scanf("%d", &userAns);
switch (a[i][j][1]) {
case '+':
ans = a[i][j][0] + a[i][j][2];
break;
case '-':
ans = a[i][j][0] - a[i][j][2];
break;
case '*':
ans = a[i][j][0] * a[i][j][2];
break;
case '/':
ans = a[i][j][0] / a[i][j][2];
break;
}
if (ans == userAns) {
printf("恭喜你,答对了!\n");
count++;
} else {
printf("很遗憾,答错了!正确答案是:%d\n", ans);
}
}
}
// 输出总成绩
printf("总成绩:%d分\n", count * 10);
return 0;
}
```
本示例随机生成10组包含10道题目的四则运算训练题,用户需要输入每道题目的答案。程序根据用户的答案判断是否正确,并输出总成绩。