将n个数输入到一维数组,将值最大的数组元素与值最小的数组元素的位置对调后输出。
时间: 2023-06-05 18:06:48 浏览: 172
好的,这个问题非常适合编程实现。以下是一个示例代码:
```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语言编写一个程序,从键盘上输入10个整数,并放入一个一维数组中,逆置数组元素的值。
下面是一个用C语言编写的程序,可以从键盘上输入10个整数,并将它们放入一个一维数组中,然后逆置数组元素的值。
```c
#include <stdio.h>
int main() {
int arr[10];
int i, temp;
// 从键盘上输入10个整数
printf("请输入10个整数:\n");
for (i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
// 逆置数组元素的值
for (i = 0; i < 5; i++) {
temp = arr[i];
arr[i] = arr[9 - i];
arr[9 - i] = temp;
}
// 输出逆置后的数组元素
printf("逆置后的数组元素为:\n");
for (i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
这个程序的思路很简单,就是先读入10个整数,然后用一个循环将前5个元素和后5个元素对调,最后输出逆置后的数组元素。注意,在交换数组元素的时候,我们需要用一个中间变量temp来保存其中一个元素,以免在交换的过程中出现数据丢失。
阅读全文