使用c语言代码实现用rand函数产生除数和被除数,让用户输入商和余数,程序给出对错的判断;该函数在stdlib.h库中。要保证多次运行产生不同的随机数。要求:1、做错的部分,如果再次做错,则给出正确答案; 2、每次运行程序可以给用户出多到题目。(固定数量,或者询问用户是否结束) 3、用户可以选择1位数、2两位数带余除法;
时间: 2023-06-09 16:08:29 浏览: 132
以下是使用C语言代码实现用rand函数产生除数和被除数,让用户输入商和余数,程序给出对错的判断的方法:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void generate_random_division(int *dividend, int *divisor) {
srand((int) time(0)); // 用系统时间初始化随机数种子
*dividend = rand() % 90 + 10; // 第一个数是两位数
*divisor = rand() % 9 + 1; // 第二个数是一位数
}
void check_answer(int dividend, int divisor, int quotient, int remainder) {
int correct_quotient = dividend / divisor;
int correct_remainder = dividend % divisor;
if (correct_quotient == quotient && correct_remainder == remainder) {
printf("答案正确!\n");
}
else {
printf("答案错误,正确答案是:%d 余 %d\n", correct_quotient, correct_remainder);
}
}
int main() {
int num_questions;
printf("请输入要出几道题目:");
scanf("%d", &num_questions);
int max_dividend_digits;
printf("请输入被除数的最大位数(1或2):");
scanf("%d", &max_dividend_digits);
for (int i = 1; i <= num_questions; i++) {
int dividend, divisor, quotient, remainder;
if (max_dividend_digits == 1) {
generate_random_division(÷nd, &divisor);
}
else {
do {
generate_random_division(÷nd, &divisor);
} while (dividend < 100); // 已经生成两位数和一位数,只有除数高于等于10才是两位数带余除法
}
printf("第 %d 题: %d ÷ %d = ", i, dividend, divisor);
scanf("%d", "ient);
printf("余数是:");
scanf("%d", &remainder);
check_answer(dividend, divisor, quotient, remainder);
}
return 0;
}
```
说明:
1. `generate_random_division` 函数用于生成随机的除数和被除数,并保证被除数是一位数、除数是一到两位数的范围内。
2. `check_answer` 函数用于检查用户输入的商和余数是否正确,并输出相应的答案。
3. 主函数中,先让用户输入要出的题目数量和被除数的最大位数(1或2),然后循环生成题目并接受用户的输入和判断答案。每次循环都会调用前面定义的两个函数。
阅读全文