c语言简单程序设计 随机生成十道含有加减乘除的题并判断正误求出正确答案的最大值最小值并按从大到小和从小到大排序
时间: 2024-03-18 12:41:52 浏览: 100
C语言生成不同的随机数,并从小到大排序
5星 · 资源好评率100%
好的,我会尽力回答你的问题。
首先,我们需要用到 C 语言中的随机数生成函数和循环语句。以下是一个简单的程序示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int i, a, b, c, d, e, f, g, h, j, k;
int correct[10]; // 用来存放每道题的正确答案
int answer, max, min;
srand(time(NULL)); // 初始化随机数发生器
for (i = 0; i < 10; i++) {
// 随机生成两个操作数和一个运算符
a = rand() % 100;
b = rand() % 100;
c = rand() % 4;
// 根据运算符计算答案并存入 correct 数组
switch (c) {
case 0:
correct[i] = a + b;
printf("%d + %d = ", a, b);
break;
case 1:
correct[i] = a - b;
printf("%d - %d = ", a, b);
break;
case 2:
correct[i] = a * b;
printf("%d * %d = ", a, b);
break;
case 3:
correct[i] = a / b;
printf("%d / %d = ", a, b);
break;
}
// 读取用户输入的答案并判断正误
scanf("%d", &answer);
if (answer == correct[i]) {
printf("Correct!\n");
} else {
printf("Wrong! The correct answer is %d.\n", correct[i]);
}
}
// 计算最大值和最小值
max = min = correct[0];
for (i = 1; i < 10; i++) {
if (correct[i] > max) {
max = correct[i];
}
if (correct[i] < min) {
min = correct[i];
}
}
// 从大到小排序
for (i = 0; i < 9; i++) {
for (j = i + 1; j < 10; j++) {
if (correct[i] < correct[j]) {
k = correct[i];
correct[i] = correct[j];
correct[j] = k;
}
}
}
printf("From largest to smallest: ");
for (i = 0; i < 10; i++) {
printf("%d ", correct[i]);
}
printf("\n");
// 从小到大排序
for (i = 0; i < 9; i++) {
for (j = i + 1; j < 10; j++) {
if (correct[i] > correct[j]) {
k = correct[i];
correct[i] = correct[j];
correct[j] = k;
}
}
}
printf("From smallest to largest: ");
for (i = 0; i < 10; i++) {
printf("%d ", correct[i]);
}
printf("\n");
// 输出最大值和最小值
printf("The maximum answer is %d.\n", max);
printf("The minimum answer is %d.\n", min);
return 0;
}
```
这个程序会生成 10 道随机的加减乘除题目,并要求用户输入答案。程序会判断用户的答案是否正确,并统计每道题的正确答案。接着,程序会计算出这些正确答案中的最大值和最小值,并按照从大到小和从小到大的顺序排序并输出。最后,程序会输出最大值和最小值。
希望这个程序能够帮到你!
阅读全文