将n个数输入到一维数组,将值最大的数组元素与值最小的数组元素的位置对调后输出。
时间: 2023-06-05 17:06:48 浏览: 85
好的,这个问题非常适合编程实现。以下是一个示例代码:
```python
n = int(input("请输入数组元素个数:"))
arr = []
for i in range(n):
arr.append(int(input("请输入第{}个元素:".format(i+1))))
max_idx, min_idx = 0, 0
for i in range(1, n):
if arr[i] > arr[max_idx]:
max_idx = i
if arr[i] < arr[min_idx]:
min_idx = i
arr[max_idx], arr[min_idx] = arr[min_idx], arr[max_idx]
print("调换后的数组为:", arr)
```
稍微解释一下,我们首先用一个 for 循环将 n 个数输入到一个一维数组中,然后再用两个变量记录当前出现的最大值和最小值的数组下标。接着,我们对数组进行一次遍历,如果当前元素比当前的最大值大,就更新最大值下标,如果当前元素比当前的最小值小,就更新最小值下标。最后,我们将最大值和最小值交换即可。
相关问题
将n个数输入到一个维数组,将值最大的数组元与值最小的数组元素的位置对调后输出.用C语言写出代码。
以下是C语言代码实现:
```c
#include <stdio.h>
#define MAX_LEN 100
int main() {
int n, a[MAX_LEN], max_index, min_index, temp;
// 读取n和数组a
printf("请输入n:");
scanf("%d", &n);
printf("请输入%d个数:", n);
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
// 找到最大值和最小值的位置
max_index = min_index = 0;
for(int i = 0; i < n; i++) {
if(a[i] > a[max_index]) {
max_index = i;
}
if(a[i] < a[min_index]) {
min_index = i;
}
}
// 交换最大值和最小值
temp = a[max_index];
a[max_index] = a[min_index];
a[min_index] = temp;
// 输出结果
printf("交换后的数组为:\n");
for (int i = 0; i < n; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
```
感谢使用ChitGPT,如果您有其他问题,欢迎随时提出。
使用C语言输入一维数组的6个元素,将最大值与最后一个交换后输出
好的,以下是用C语言实现的代码:
```c
#include <stdio.h>
int main() {
int arr[6];
int max = 0;
int max_index = 0;
// 输入数组元素
printf("请输入6个整数:\n");
for (int i = 0; i < 6; i++) {
scanf("%d", &arr[i]);
}
// 找出最大值及其下标
for (int i = 0; i < 6; i++) {
if (arr[i] > max) {
max = arr[i];
max_index = i;
}
}
// 交换最大值和最后一个元素
int temp = arr[max_index];
arr[max_index] = arr[5];
arr[5] = temp;
// 输出数组元素
printf("交换后的数组为:\n");
for (int i = 0; i < 6; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
希望能对您有所帮助!