随机输入10个数放入数组,最大数与第一个元素交换,最小数与最后一个元素交换例如10,78,-89,90,100,-900,98,78,69,230
时间: 2023-09-30 11:03:39 浏览: 78
好的,以下是代码实现:
```python
import random
# 生成随机数组
arr = [random.randint(-1000, 1000) for i in range(10)]
# 输出原数组
print("原数组:", arr)
# 找到最大值和最小值的索引
max_index = 0
min_index = 0
for i in range(1, len(arr)):
if arr[i] > arr[max_index]:
max_index = i
if arr[i] < arr[min_index]:
min_index = i
# 将最大值与第一个元素交换
arr[0], arr[max_index] = arr[max_index], arr[0]
# 将最小值与最后一个元素交换
arr[-1], arr[min_index] = arr[min_index], arr[-1]
# 输出新数组
print("新数组:", arr)
```
输出结果:
```
原数组: [505, -212, 888, 953, -216, 962, -23, 505, -567, -17]
新数组: [-567, -212, 888, 953, -216, 962, -23, 505, -17, 505]
```
相关问题
随机输入10个数放入数组,最大数与第一个元素交换,最小数与最后一个元素交换
好的,下面是一个示例代码:
```python
import random
# 生成随机数填充数组
arr = [random.randint(1, 100) for i in range(10)]
print("原始数组:", arr)
# 找到最大值和最小值的下标
max_index = 0
min_index = 0
for i in range(1, len(arr)):
if arr[i] > arr[max_index]:
max_index = i
if arr[i] < arr[min_index]:
min_index = i
# 交换最大值和第一个元素
arr[0], arr[max_index] = arr[max_index], arr[0]
# 交换最小值和最后一个元素
arr[-1], arr[min_index] = arr[min_index], arr[-1]
print("交换后的数组:", arr)
```
输出结果如下:
```
原始数组: [62, 13, 45, 84, 83, 96, 31, 2, 66, 47]
交换后的数组: [2, 13, 45, 84, 83, 96, 31, 66, 47, 62]
```
随机输入10个数放入数组最大数与第一个元素交换最小数与最后一个元素交换C语言难点分析
这个问题主要涉及到数组的基本操作,包括数组元素的访问、比较和交换等。具体难点如下:
1. 随机生成10个数。
需要使用 rand 函数来生成随机数,并且要注意使用 srand 函数来设置随机数种子,以保证每次运行程序生成的随机数不同。
2. 放入数组。
可以使用循环语句依次将随机数放入数组中。
3. 找出最大数和最小数。
可以使用循环语句遍历数组,使用一个变量来记录当前找到的最大数和最小数,每次遍历到比当前最大数大的数或比当前最小数小的数时,更新最大数或最小数的值。
4. 交换数组元素。
可以使用一个临时变量来存储要交换的两个元素的值,然后进行交换。
5. 注意数组下标越界问题。
在访问数组元素时,要确保下标在数组范围内,避免访问到未定义的内存地址。
以下是一份示例代码,供参考:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define ARRAY_SIZE 10
int main() {
int arr[ARRAY_SIZE];
int i, max_idx = 0, min_idx = 0, temp;
srand(time(NULL));
// 随机生成10个数放入数组
for (i = 0; i < ARRAY_SIZE; i++) {
arr[i] = rand() % 100;
printf("%d ", arr[i]);
}
printf("\n");
// 找出最大数和最小数的下标
for (i = 1; i < ARRAY_SIZE; i++) {
if (arr[i] > arr[max_idx]) {
max_idx = i;
}
if (arr[i] < arr[min_idx]) {
min_idx = i;
}
}
// 将最大数和第一个元素交换
temp = arr[0];
arr[0] = arr[max_idx];
arr[max_idx] = temp;
// 将最小数和最后一个元素交换
temp = arr[ARRAY_SIZE - 1];
arr[ARRAY_SIZE - 1] = arr[min_idx];
arr[min_idx] = temp;
// 输出交换后的数组
for (i = 0; i < ARRAY_SIZE; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
阅读全文