c语言运用指针输出10个数,最小的数与第一个数交换,最大的数与最后一个数交换
时间: 2024-02-06 20:11:29 浏览: 84
好的,可以通过以下代码实现:
```c
#include <stdio.h>
// 定义swap函数,交换a和b的值
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int arr[10] = {5, 8, 1, 6, 9, 3, 7, 2, 4, 0}; // 初始化数组
int min_index = 0, max_index = 0;
// 找出最小值和最大值的下标
for (int i = 1; i < 10; i++) {
if (arr[i] < arr[min_index]) {
min_index = i;
}
if (arr[i] > arr[max_index]) {
max_index = i;
}
}
// 将最小值与第一个数交换
swap(&arr[0], &arr[min_index]);
// 如果最大值在第一个位置,需要将最小值的下标更新
if (max_index == 0) {
min_index = max_index;
}
// 将最大值与最后一个数交换
swap(&arr[9], &arr[max_index]);
// 输出交换后的数组
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
输出结果为:
```
9 8 1 6 5 3 7 2 4 0
```
阅读全文