1. n 个数存放在数组中,用指针指向数组首地址,在子函数中用指针做形参实现:将最小值与第一个数交换。在主函数中输出交换后的 n 个数。n个数为:3,5,7,4,8,2,9.
时间: 2024-11-09 22:27:15 浏览: 8
当你有一个包含 n 个整数的数组,并使用指针作为参数传递给一个子函数,可以这样实现将数组中的最小值与第一个元素交换的操作:
1. 首先,在主函数里,创建一个指向数组首元素的指针 `p`,然后将它传递给子函数 `swap_min_with_first()`。
```c
#include <stdio.h>
int* arr = {3, 5, 7, 4, 8, 2, 9}; // 定义数组
int n = sizeof(arr) / sizeof(arr[0]); // 获取数组长度
void swap_min_with_first(int* ptr) {
if (n > 1) { // 如果有超过一个元素
int min_index = 0; // 初始化最小值索引为0
for (int i = 1; i < n; i++) { // 从第二个元素开始查找最小值
if (arr[i] < arr[min_index]) {
min_index = i;
}
}
// 交换第一个元素和找到的最小元素
int temp = arr[0];
arr[0] = arr[min_index];
arr[min_index] = temp;
}
}
int main() {
swap_min_with_first(arr); // 调用子函数
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]); // 输出数组元素
}
return 0;
}
```
运行这个程序后,你会看到原始数组的第一个元素(最小值)已经被替换成了3,其他元素保持不变。
阅读全文