用c语言编写一组程序 ,使其中所有小于0的元素放在所有大于0的元素前面
时间: 2024-09-12 11:15:36 浏览: 32
在C语言中,你可以使用标准库函数`qsort()`来对数组进行排序,然后自定义比较函数来达到将负数放在正数前面的效果。下面是一个简单的示例,展示如何编写这样的程序:
```c
#include <stdio.h>
#include <stdlib.h>
// 自定义比较函数,用于判断元素是否为负数
int compare(const void *a, const void *b) {
if (*(int*)a < *(int*)b)
return -1;
else if (*(int*)a > *(int*)b)
return 1;
else // 如果相等,则保持原顺序不变
return 0;
}
void sort_negative_numbers(int arr[], int n) {
qsort(arr, n, sizeof(int), compare);
}
int main() {
int numbers[] = {5, -3, 7, -9, 2, -4, 6};
int array_size = sizeof(numbers) / sizeof(numbers[0]);
printf("Original array:\n");
for (int i = 0; i < array_size; i++) {
printf("%d ", numbers[i]);
}
printf("\n");
sort_negative_numbers(numbers, array_size);
printf("Array with negative numbers in front:\n");
for (int i = 0; i < array_size; i++) {
printf("%d ", numbers[i]);
}
printf("\n");
return 0;
}
```
当你运行这个程序,它会先打印原始数组,然后显示经过排序后的数组,其中负数在前,正数在后。
阅读全文