酷代码 AI
菜单
服务商

C 语言实现:交换整数序列中最小值与首数、最大值与尾数(含边界处理)

```c #include <stdio.h> // 交换两个整数的值 void swap(int *a, int *b) { int temp = *a; *a = *b; *b = temp; } int main() { int n; scanf("%d", &n); int arr[10]; // 读取输入的整数 for (int i = 0; i < n; i++) { scanf("%d", &arr[i]); } // 找到最小值的索引 int min_index = 0; for (int i = 1; i < n; i++) { if (arr[i] < arr[min_index]) { min_index = i; } } // 交换最小值和第一个数 swap(&arr[0], &arr[min_index]); // 找到最大值的索引 int max_index = 0; for (int i = 1; i < n; i++) { if (arr[i] > arr[max_index]) { max_index = i; } } // 交换最大值和最后一个数 swap(&arr[n - 1], &arr[max_index]); // 输出交换后的序列 for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } return 0; } ``` 代码解释 1. `swap`函数:用于交换两个整数的值,使用指针作为参数,通过临时变量`temp`完成交换。 2. `main`函数: - 读取输入的整数个数`n`。 - 读取`n`个整数存储在数组`arr`中。 - 找到数组中最小值的索引`min_index`,并将最小值与数组的第一个元素交换。 - 找到数组中最大值的索引`max_index`,并将最大值与数组的最后一个元素交换。 - 输出交换后的数组元素,每个元素后带一个空格。 边界问题处理 - 代码假设输入的整数个数`N`不超过10,使用固定大小的数组`arr[10]`存储输入的整数。 - 题目保证最大和最小值都是唯一的,所以在寻找最大值和最小值时,不需要额外处理相等的情况。 ######[AI问答 | 547点数解答 | 2025-11-27 11:42:10]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]