用C语言编写一个为小学生随机出10道算术题,每题10分,输入答案后,程序会自动判断对错,最后算出总分,。算术中包含加,减,乘,除四种。结果求平均值,把最大数和最小数输出,并给结果按照由大到小,由小到大两种方式排序,
时间: 2024-05-17 18:16:29 浏览: 114
好的,我可以帮你解决这个问题。以下是 C 语言代码,实现了你所需要的功能:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int num1, num2, result, answer, score = 0;
char operator;
int i, j, temp, sum = 0;
int array[10];
srand(time(NULL)); // 设置随机种子
// 生成10道随机算术题并计算得分
for (i = 0; i < 10; i++) {
num1 = rand() % 101; // 生成0-100之间的随机整数
num2 = rand() % 101;
operator = rand() % 4; // 生成0-3之间的随机整数,分别表示加、减、乘、除
switch (operator) {
case 0:
result = num1 + num2;
printf("%d + %d = ", num1, num2);
break;
case 1:
result = num1 - num2;
printf("%d - %d = ", num1, num2);
break;
case 2:
result = num1 * num2;
printf("%d * %d = ", num1, num2);
break;
case 3:
if (num2 == 0) { // 避免除数为0的情况
num2 = rand() % 100 + 1; // 重新生成除数
}
result = num1 / num2;
printf("%d / %d = ", num1, num2);
break;
}
scanf("%d", &answer);
if (answer == result) {
printf("Right! ");
score += 10;
} else {
printf("Wrong! ");
}
printf("Score: %d\n", score);
sum += score;
}
// 计算平均分
float average = (float) sum / 10;
printf("Average: %.2f\n", average);
// 找出最大值和最小值
for (i = 0; i < 10; i++) {
array[i] = rand() % 101; // 生成0-100之间的随机整数
}
int max = array[0];
int min = array[0];
for (i = 1; i < 10; i++) {
if (array[i] > max) {
max = array[i];
}
if (array[i] < min) {
min = array[i];
}
}
printf("Max: %d, Min: %d\n", max, min);
// 由大到小排序
for (i = 0; i < 9; i++) {
for (j = i + 1; j < 10; j++) {
if (array[i] < array[j]) {
temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
printf("From biggest to smallest: ");
for (i = 0; i < 10; i++) {
printf("%d ", array[i]);
}
printf("\n");
// 由小到大排序
for (i = 0; i < 9; i++) {
for (j = i + 1; j < 10; j++) {
if (array[i] > array[j]) {
temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
printf("From smallest to biggest: ");
for (i = 0; i < 10; i++) {
printf("%d ", array[i]);
}
printf("\n");
return 0;
}
```
希望这个程序能够帮到你!
阅读全文