C语言实现:从正整数序列中提取奇数并升序输出
```c #include <stdio.h> #define MAX_N 500 // 交换两个整数的值 void swap(int *a, int *b) { int temp = *a; *a = *b; *b = temp; } // 冒泡排序函数,对数组进行升序排序 void bubbleSort(int arr[], int n) { for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - i - 1; j++) { if (arr[j] > arr[j + 1]) { swap(&arr[j], &arr[j + 1]); } } } } int main() { int n; int numbers[MAX_N]; int oddNumbers[MAX_N]; int oddCount = 0; // 读取序列的长度 scanf("%d", &n); // 读取序列中的每个数 for (int i = 0; i < n; i++) { scanf("%d", &numbers[i]); // 判断是否为奇数,若是则存入oddNumbers数组 if (numbers[i] % 2 != 0) { oddNumbers[oddCount] = numbers[i]; oddCount++; } } // 对奇数数组进行升序排序 bubbleSort(oddNumbers, oddCount); // 输出排序后的奇数序列,用逗号分隔 for (int i = 0; i < oddCount; i++) { if (i > 0) { printf(","); } printf("%d", oddNumbers[i]); } return 0; } ``` 代码解释: 1. 输入处理: - 首先读取序列的长度 `n`。 - 接着读取 `n` 个正整数,同时判断每个数是否为奇数,若是则存入 `oddNumbers` 数组,并记录奇数的个数 `oddCount`。 2. 排序: - 使用冒泡排序算法对 `oddNumbers` 数组进行升序排序。 3. 输出: - 遍历排序后的 `oddNumbers` 数组,输出每个奇数,并且在相邻奇数之间用逗号分隔。 复杂度分析: - 时间复杂度:$O(n^2)$,主要由冒泡排序决定。 - 空间复杂度:$O(n)$,主要用于存储奇数数组。 ######[AI问答 | 572点数解答 | 2025-11-15 20:12:47]
- 使用位运算对黄金城原材料编号进行奇偶分类的C++程序(字节豆包 | 211点数解答 | 2026-02-28 20:38:57)26
- 超详细!整数奇偶与倍数判断代码解析及补全(字节豆包 | 462点数解答 | 2026-01-08 12:43:56)49
- 求解特定条件下整数序列的最小值:算法分析与代码实现(字节豆包 | 746点数解答 | 2026-01-24 13:14:40)58
- C++实现二进制转八进制及旋律类型判断(字节豆包 | 629点数解答 | 2026-03-21 19:50:41)19
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)349
- C++ 实现旋律类型判断:根据 7 个音符顺序输出升序、降序或混合(字节豆包 | 582点数解答 | 2026-03-21 19:41:16)12
- C++实现:输入整数判断奇偶性及是否为 5 或 4 的倍数(DeepSeek | 137点数解答 | 2026-01-04 19:15:44)42
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)319
- 幼儿园小朋友学号奇偶分类:代码实现与详细解释(字节豆包 | 406点数解答 | 2025-11-26 19:39:05)60
- C++:轻松判断 int 型整数 32 位内码是否对称,附代码详解!(字节豆包 | 560点数解答 | 2026-01-23 19:44:43)31
- 判断南瓜总数能否拆分为两个奇数——奇偶性决定一切(阿里通义 | 785点数解答 | 2026-03-13 12:12:50)27
- 求解整数序列操作最小次数:让前缀和之和等于后缀和之和(DeepSeek | 1329点数解答 | 2025-05-25 17:27:01)228