使用c++在一个数组中选出三个随机数并在三个随机数中选出中间值的代码
时间: 2023-09-22 21:06:23 浏览: 342
### 回答1:
我可以提供如下的代码示例:int array[3];
array[0] = rand() % 100;
array[1] = rand() % 100;
array[2] = rand() % 100;int m = array[0];
if (array[1] > m)
m = array[1];
if (array[2] > m)
m = array[2];int n = array[0];
if (array[1] < n)
n = array[1];
if (array[2] < n)
n = array[2];int mid = array[0] + array[1] + array[2] - m - n;
printf("中间值是:%d", mid);
### 回答2:
下面是使用C语言编写的代码,从给定的数组中选择三个随机数,并找到这三个数的中间值。
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int findMiddleValue(int arr[], int size) {
int min = arr[0];
int max = arr[0];
// 找到数组中的最小值和最大值
for (int i = 1; i < size; i++) {
if (arr[i] < min) {
min = arr[i];
}
if (arr[i] > max) {
max = arr[i];
}
}
// 找到中间值
int middleValue = arr[0];
for (int i = 1; i < size; i++) {
if (arr[i] != min && arr[i] != max) {
middleValue = arr[i];
break;
}
}
return middleValue;
}
int main() {
// 定义一个包含随机数的数组
int arr[10] = {1, 5, 7, 10, 15, 20, 25, 30, 35, 40};
// 生成随机数种子
srand(time(0));
// 从数组中随机选择三个数
int indexes[3] = {0};
for (int i = 0; i < 3; i++) {
int index;
// 保证选出的随机数索引不重复
do {
index = rand() % 10;
} while (indexes[0] == index || indexes[1] == index);
indexes[i] = index;
}
// 打印选出的三个随机数
printf("选出的三个随机数为:");
for (int i = 0; i < 3; i++) {
printf("%d ", arr[indexes[i]]);
}
printf("\n");
// 找出三个随机数的中间值
int middleValue = findMiddleValue(arr, 3);
printf("中间值为:%d\n", middleValue);
return 0;
}
```
这段代码首先定义了一个包含了随机数的整型数组。然后使用`time`函数和`srand`函数生成随机数种子。接下来,在循环中通过`rand`函数获取一个随机数索引,并使用一个`do-while`循环确保选出的随机数索引不重复。然后,通过这个随机数索引获取对应的数组元素,并打印出选出的三个随机数。最后,调用`findMiddleValue`函数找到这三个数的中间值,并打印出结果。
### 回答3:
可以使用C语言编写以下代码来实现在一个数组中选出三个随机数并找出中间值:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int getMiddleValue(int arr[], int size) {
int i, j, temp;
// 通过循环排序数组元素
for (i = 0; i < size - 1; i++) {
for (j = 0; j < size - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
// 交换数组元素位置
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
// 返回排序后的中间值
return arr[size / 2];
}
int main() {
int arr[10]; // 假设数组长度为10
int i, randomNumber;
// 使用时间作为随机数种子
srand(time(NULL));
// 随机生成数组元素
for (i = 0; i < 10; i++) {
randomNumber = rand() % 100; // 生成0-99的随机数
arr[i] = randomNumber;
}
// 打印生成的随机数组
printf("随机数组:");
for (i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
// 调用函数获取中间值
int middleValue = getMiddleValue(arr, 10);
printf("\n中间值为:%d\n", middleValue);
return 0;
}
```
以上代码中,首先声明了一个长度为10的数组arr,然后通过srand函数将时间作为随机数种子,接着使用rand函数生成0-99的随机数,并将随机数存入数组中。随后,调用getMiddleValue函数计算数组中的中间值,并通过printf函数打印随机数组和中间值。最后返回0,程序执行完毕。
阅读全文