第1个回答 2013-05-25
#include <stdio.h>
#include <malloc.h>
//1. 降序冒泡排序方法:
void bubble(int array[], int length)
{
bool exchanged = true;
for (int i = length - 1; i > 0 && exchanged; i--)
{
exchanged = false;
for (int j = 0; j < i; j++)
{
if (array[j] < array[j + 1])
{
array[j] = array[j] + array[j + 1];
array[j + 1] = array[j] - array[j + 1];
array[j] = array[j] - array[j + 1];
exchanged = true;
}
}
}
}
//2. 打印函数
void print(int array[], int length)
{
for(int i = 0; i < length; i++)
printf("%d ", array[i]);
printf("\n");
}
//3. 主函数
void main()
{
int n;
int *array;
scanf("%d", n); //输入N
if (n <= 0) //待排序的数个数小于等于零就无需处理了
return;
array = (int *)malloc(sizeof(int) * n); //申请数组空间
for (int i = 0; i < n; i++)
{
scanf("%d", &array[i]);
}
print(array,n); //输入序列
bubble(array, n); //排序
print(array,n); //输出序列
free(array);
}本回答被提问者采纳