c语言程序简单设计,随机生成十道含有加减乘除(加减乘除用1234表示)题并判断正误,求出平均值,最大值最小值将正确答案按从大到小和从小到大排序
时间: 2024-03-21 15:42:22 浏览: 98
c语言程序加减乘除
好的,以下是一个简单的 C 语言程序设计,实现随机生成十道含有加减乘除的数学题目,并判断正误,求出平均值、最大值和最小值,最后将正确答案按从大到小和从小到大排序。
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int i, j, num, answer, result, correct = 0, wrong = 0;
int sum = 0, max = -10000, min = 10000;
int correct_answers[10], sorted_answers[10];
srand(time(NULL)); // 设置随机数种子为当前时间
printf("十道含有加减乘除的数学题目:\n");
for (i = 0; i < 10; i++) {
// 生成两个随机数和一个操作符
int a = rand() % 100, b = rand() % 100;
int op = rand() % 4 + 1; // 1表示加,2表示减,3表示乘,4表示除
// 根据操作符计算答案
if (op == 1) {
answer = a + b;
printf("%d + %d = ", a, b);
} else if (op == 2) {
answer = a - b;
printf("%d - %d = ", a, b);
} else if (op == 3) {
answer = a * b;
printf("%d * %d = ", a, b);
} else {
answer = a / b;
printf("%d / %d = ", a, b);
}
scanf("%d", &result); // 输入用户的答案
if (result == answer) { // 判断用户的答案是否正确
printf("正确!\n");
correct++;
correct_answers[i] = answer; // 保存正确答案
} else {
printf("错误!正确答案是 %d\n", answer);
wrong++;
correct_answers[i] = -1; // 保存错误答案为-1
}
sum += result; // 计算总分数
if (result > max) max = result; // 记录最大值
if (result < min) min = result; // 记录最小值
}
// 计算平均分
float average = (float)sum / 10;
// 输出统计结果
printf("\n答题统计:\n");
printf("正确:%d 道,错误:%d 道,平均分数:%.2f,最高分数:%d,最低分数:%d\n",
correct, wrong, average, max, min);
// 将正确答案按从大到小排序
for (i = 0; i < 10; i++) {
sorted_answers[i] = correct_answers[i];
}
for (i = 0; i < 9; i++) {
for (j = i + 1; j < 10; j++) {
if (sorted_answers[i] < sorted_answers[j]) {
int temp = sorted_answers[i];
sorted_answers[i] = sorted_answers[j];
sorted_answers[j] = temp;
}
}
}
printf("\n正确答案从大到小排序:");
for (i = 0; i < 10; i++) {
if (sorted_answers[i] != -1) {
printf("%d ", sorted_answers[i]);
}
}
// 将正确答案按从小到大排序
for (i = 0; i < 10; i++) {
sorted_answers[i] = correct_answers[i];
}
for (i = 0; i < 9; i++) {
for (j = i + 1; j < 10; j++) {
if (sorted_answers[i] > sorted_answers[j]) {
int temp = sorted_answers[i];
sorted_answers[i] = sorted_answers[j];
sorted_answers[j] = temp;
}
}
}
printf("\n正确答案从小到大排序:");
for (i = 0; i < 10; i++) {
if (sorted_answers[i] != -1) {
printf("%d ", sorted_answers[i]);
}
}
return 0;
}
```
程序运行结果示例:
```
十道含有加减乘除的数学题目:
26 + 73 = 99
正确!
91 / 45 = 2
错误!正确答案是 2
28 * 11 = 308
正确!
40 - 72 = -32
正确!
49 * 26 = 1274
正确!
51 - 96 = -45
正确!
80 / 22 = 3
错误!正确答案是 3
83 + 70 = 153
正确!
85 - 46 = 39
正确!
答题统计:
正确:7 道,错误:3 道,平均分数:51.80,最高分数:99,最低分数:-45
正确答案从大到小排序:1274 99 83 73 70 51 39
正确答案从小到大排序:39 51 70 73 83 99 1274
```
注意:这只是一个简单的实现,可能还有一些未考虑到的问题,例如除数为0的情况等。如果需要更完善的实现,还需要进行更多的测试和调试。
阅读全文