c语言数组最大值最小值地址交换
时间: 2024-11-14 07:13:37 浏览: 1
在 C 语言中,数组的最大值、最小值以及它们的地址交换通常涉及到遍历数组并跟踪当前找到的最大值和最小值的过程。这里是一个简单的示例:
1. 找最大值和最小值:
```c
int array[] = {5, 10, 1, 8, 3};
int max = array[0], min = array[0];
int size = sizeof(array) / sizeof(array[0]);
for (int i = 1; i < size; i++) {
if (array[i] > max) {
max = array[i]; // 更新最大值
}
if (array[i] < min) {
min = array[i]; // 更新最小值
}
}
```
在这个循环结束后,`max`变量将包含数组中的最大值,`min`变量将包含最小值。
2. 地址交换(假设我们要交换最大值和最小值的位置):
```c
// 假设我们已经找到了max和min的实际地址
int *temp_max = &max;
int *temp_min = &min;
if (max != min) {
// 仅当两者不相等时才交换
*temp_max = min; // 将最小值赋给max地址
*temp_min = max; // 将最大值赋给min地址
} else {
printf("数组中所有元素都相同,无法交换。\n");
}
```
上述代码会确保在数组中有差异的情况下正确地交换最大值和最小值的地址所指向的值。
阅读全文