设计一个出题器程序,题目是计算0--100内的两个数的加、减、乘、除。 功能说明: 1. 由计算机随机选取加、减、乘、除 2.数据都是正整数,由计算机随机出数,结果不能出现负值,除法不能整除的情况要计算余数 3.每次出题数量是10个; 每次显示1题,完成后显示对错,并给出答案,然后显示下一题; 例如: 第1题: 12+4=16(2+4=计算机显示,6是用户输入) 正确 第2题: 13/6= 商=2 余数=1 正确。用c语言程序写代码
时间: 2023-06-10 10:08:32 浏览: 121
以下是一个基于C语言的出题器程序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int i, op, num1, num2, ans, userAns, correct = 0, incorrect = 0;
srand(time(NULL)); // 设置随机数种子为当前时间
for (i = 0; i < 10; i++) { // 出10道题
op = rand() % 4; // 随机生成运算符,0表示加,1表示减,2表示乘,3表示除
num1 = rand() % 101; // 随机生成两个数
num2 = rand() % 101;
switch (op) {
case 0:
ans = num1 + num2; // 计算答案
printf("第%d题: %d + %d = ", i+1, num1, num2); // 输出题目
break;
case 1:
ans = num1 - num2;
printf("第%d题: %d - %d = ", i+1, num1, num2);
break;
case 2:
ans = num1 * num2;
printf("第%d题: %d * %d = ", i+1, num1, num2);
break;
case 3:
while (num2 == 0 || num1 % num2 != 0) { // 除数不能为0,除不尽则重新生成随机数
num1 = rand() % 101;
num2 = rand() % 101;
}
ans = num1 / num2;
printf("第%d题: %d / %d = ", i+1, num1, num2);
break;
}
scanf("%d", &userAns); // 用户输入答案
if (userAns == ans) {
printf("正确\n");
correct++;
} else {
printf("错误,正确答案为%d\n", ans);
incorrect++;
}
}
printf("做题完成,共%d道题,正确%d道,错误%d道\n", correct+incorrect, correct, incorrect);
return 0;
}
```
该程序使用了C标准库里的`time()`函数和`rand()`函数来生成随机数,使用了`switch`语句来判断运算符类型,并使用了循环来确保除法的除数不为0且能整除。用户输入答案后,程序会判断用户的答案是否正确,并输出相应的信息。最后,程序会输出做题的结果统计。
阅读全文