编写程序,实现如下功能:(1) 从键盘输入9个整数并存放在数组;(2)分别找出数值最大和最小的数所对应的下标,并将两者调换位置;(3)输出新的排序后的数。使用c语言
时间: 2025-01-28 14:25:47 浏览: 41
好的,我来为您编写一个C语言程序,实现您描述的功能。以下是完整的代码:
```c
#include <stdio.h>
#define SIZE 9
int main() {
int arr[SIZE];
int i, maxIndex, minIndex, temp;
// (1) 从键盘输入9个整数并存放在数组
printf("请输入9个整数:\n");
for (i = 0; i < SIZE; i++) {
scanf("%d", &arr[i]);
}
// (2) 找出最大和最小值的下标并交换
maxIndex = 0;
minIndex = 0;
for (i = 1; i < SIZE; i++) {
if (arr[i] > arr[maxIndex]) {
maxIndex = i;
}
if (arr[i] < arr[minIndex]) {
minIndex = i;
}
}
// 交换最大值和最小值的位置
if (maxIndex != minIndex) {
temp = arr[maxIndex];
arr[maxIndex] = arr[minIndex];
arr[minIndex] = temp;
}
// (3) 输出新的排序后的数
printf("交换后的数组:\n");
for (i = 0; i < SIZE; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
这个程序的工作流程如下:
1. 首先,我们定义了一个大小为9的整型数组`arr`。
2. 使用for循环从键盘读取9个整数,并存储在数组`arr`中。
3. 我们初始化`maxIndex`和`minIndex`为0,然后遍历数组,找出最大值和最小值对应的下标。
4. 如果最大值和最小值的下标不同,我们就交换这两个位置的值。
5. 最后,我们输出交换后的数组。
这个程序满足了您的所有要求:从键盘输入9个整数,交换最大值和最小值的位置,并输出新的数组。
阅读全文
相关推荐

















