酷代码 AI
菜单
服务商

7-3 交换最小值和最大值 分数 7 作者 C课程组 单位 浙江大学 本题要求编写程序,先将输入的一系列整数中的最小值与第一个数交换,然后将最大值与最后一个数交换,最后输出交换后的序列。 注意:题目保证最大和最小值都是唯一的。 输入格式: 输入在第一行中给出一个正整数N(≤10),第二行给出N个整数,数字间以空格分隔。 输出格式: 在一行中顺序输出交换后的序列,每个整数后跟一个空格。 输入样例: 5 8 2 5 1 4 输出样例: 1 2 5 4 8用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]`存储输入的整数。 - 题目保证最大和最小值都是唯一的,所以在寻找最大值和最小值时,不需要额外处理相等的情况。 [2025-11-27 11:42:10 | AI问答 | 547点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多