酷代码 AI
菜单
服务商

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]

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