用c语言将数组中的负数提取出来并且将数组中的负数从大到小排序正数按原位置输出
时间: 2024-02-13 18:05:49 浏览: 33
好的,我理解了你的问题,以下是解答:
```
#include <stdio.h>
int main() {
int arr[] = {5, -3, 7, -2, 0, -8, 9, 4, -1, 6};
int n = sizeof(arr) / sizeof(arr[0]);
int neg[n], pos[n], neg_count = 0, pos_count = 0;
// 提取负数和正数
for (int i = 0; i < n; i++) {
if (arr[i] < 0) {
neg[neg_count++] = arr[i];
} else {
pos[pos_count++] = arr[i];
}
}
// 对负数从大到小排序
for (int i = 0; i < neg_count; i++) {
for (int j = i + 1; j < neg_count; j++) {
if (neg[i] < neg[j]) {
int tmp = neg[i];
neg[i] = neg[j];
neg[j] = tmp;
}
}
}
// 输出负数和正数
for (int i = 0; i < neg_count; i++) {
printf("%d ", neg[i]);
}
for (int i = 0; i < pos_count; i++) {
printf("%d ", pos[i]);
}
printf("\n");
return 0;
}
```
这段代码先通过循环将数组中的负数和正数提取到两个不同的数组中,然后对负数进行冒泡排序,最后再依次输出负数和正数即可。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)