随机产生n道正整数四则运算的题目,用户输入计算结果, 判断输入正确与否,并统计正确率。题目保证减法不出现负数.
时间: 2023-03-26 09:03:22 浏览: 158
好的,这是一个编程问题,我可以回答。首先,我们需要随机生成n道正整数四则运算的题目,可以使用随机数生成器和循环语句来实现。然后,我们需要让用户输入计算结果,并将其与正确答案进行比较,如果相同则计数器加1,最后计算正确率。具体实现可以参考以下代码:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int n, i, a, b, c, d, result, answer, count = ;
char op1, op2, op3;
printf("请输入题目数量:");
scanf("%d", &n);
srand((unsigned)time(NULL)); // 初始化随机数种子
for (i = 1; i <= n; i++) {
a = rand() % 100 + 1; // 生成1~100之间的随机数
b = rand() % 100 + 1;
c = rand() % 100 + 1;
d = rand() % 100 + 1;
// 随机生成运算符
switch (rand() % 4) {
case :
op1 = '+';
result = a + b;
break;
case 1:
op1 = '-';
result = a - b;
break;
case 2:
op1 = '*';
result = a * b;
break;
case 3:
op1 = '/';
result = a / b;
break;
}
switch (rand() % 4) {
case :
op2 = '+';
result += c;
break;
case 1:
op2 = '-';
result -= c;
break;
case 2:
op2 = '*';
result *= c;
break;
case 3:
op2 = '/';
result /= c;
break;
}
switch (rand() % 4) {
case :
op3 = '+';
result += d;
break;
case 1:
op3 = '-';
result -= d;
break;
case 2:
op3 = '*';
result *= d;
break;
case 3:
op3 = '/';
result /= d;
break;
}
printf("%d %c %d %c %d %c %d = ", a, op1, b, op2, c, op3, d);
scanf("%d", &answer);
if (answer == result) {
printf("回答正确!\n");
count++;
} else {
printf("回答错误!正确答案为%d\n", result);
}
}
printf("共%d道题,你回答了%d道,正确率为%.2f%%\n", n, count, (float)count / n * 100);
return ;
}