使用c++在一个数组中选出三个随机数并选出中间值的代码
时间: 2023-09-20 11:05:55 浏览: 474
### 回答1:
您可以使用以下代码选出中间值:int array[] = {1,2,3,4,5}; // 数组 int n = sizeof(array)/sizeof(array[0]); // 数组大小 int m = n/2; // 中间值 int r1 = rand() % n; // 随机数1 int r2 = rand() % n; // 随机数2 int r3 = rand() % n; // 随机数3 int m1 = array[r1] + array[r2] + array[r3] - max(array[r1], max(array[r2], array[r3])) - min(array[r1], min(array[r2], array[r3])); // 中间值 printf("中间值是:%d", m1);
### 回答2:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int compare(const void* a, const void* b) {
return (*(int*)a - *(int*)b);
}
int main() {
int array[10];
int i, middle;
srand(time(NULL)); // 设置随机数种子
// 生成随机数组
for (i = 0; i < 10; i++) {
array[i] = rand() % 100; // 生成0-99之间的随机数
printf("%d ", array[i]);
}
printf("\n");
qsort(array, 10, sizeof(int), compare); // 对数组进行升序排序
middle = array[4]; // 选出中间值,数组索引从0开始,所以中间值为array[4]
printf("中间值为:%d\n", middle);
return 0;
}
```
使用C语言编写的代码中,首先我们声明一个大小为10的整型数组array。然后利用srand函数设置一个随机数种子,以保证每次运行都能生成不同的随机数序列。在for循环中,利用rand函数生成0-99之间的随机数,并将其存入数组array中,同时通过printf函数打印出这些随机数。然后,我们使用qsort函数对数组进行升序排序,并传入自定义的compare函数作为比较函数。最后,我们通过middle变量存储数组的中间值,即数组的第5个元素(索引为4)。最后通过printf函数打印出中间值。
### 回答3:
使用C语言,可以通过以下代码来在一个数组中选出三个随机数并选出中间值:
```
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int compare(const void *a, const void *b) {
return (*(int *)a - *(int *)b);
}
int main() {
int arr[10]; // 假设数组大小为10
int i;
// 初始化随机数生成器
srand(time(0));
// 生成随机数并存入数组
for (i = 0; i < 10; i++) {
arr[i] = rand() % 100; // 假设随机数范围为0-99
printf("%d ", arr[i]);
}
printf("\n");
// 使用qsort函数对数组进行排序
qsort(arr, 10, sizeof(int), compare);
// 输出排序后的数组
for (i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
// 输出中间值
printf("中间值:%d\n", arr[4]);
return 0;
}
```
在上述代码中,首先初始化随机数生成器,并使用rand()函数生成10个随机数(假设随机数范围为0-99),然后使用qsort函数对数组进行排序,接着输出排序后的数组,并选取中间位置的值作为中间值,最后输出中间值。
阅读全文