【急求】c语言编写函数void sort(int a[]),其功能是将数组a[n]按照从大到小排序

题目:编写函数void sort(int a[]),其功能是将数组a[n]按照从大到小排序,n是主程序文件中定义的全局变量。

特别强调:上交的程序不能有主函数main()。

测试时要加main()函数,测试数据如下:
(1) 输入
5
3 5 1 2 4
(2) 输出
5 4 3 2 1

小朋友先自己写写看。

void swap( int *a ,int *b)
{
int temp;

temp = *a;
*a = *b;
*b =temp;
}

void sort(int a[])
{

for (int i=0; i<N; i++) //N即为你的数组长度-1;
{
for (int m =N; m>i; m--)
{
if (a[m] > a[m-1])
{
swap(&a[m],&a[m-1]);
}
}
}

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-12-24
数据结构中有专门的排序一章。具体相关算法楼主可自行查阅。

如果没有学习过数据结构,可以采用起泡算法或者直接插入排序。这两种都是比较容易的排序算法。算法思想也好理解。
第2个回答  2009-12-24
#include <iostream>
using namespace std;
int n;
int main()
{ void sort(int a[]);
cin>>n;
int *p=new int [n];
int i;
for(i=0;i<n;i++)
cin>>p[i];
sort(p);

return 0;
}

void sort(int a[])
{
int i,j,temp;
for(i=0;i<n;i++)
{
for(j=i;j<n;j++)

if(a[j]>a[i])
{temp=a[i];a[i]=a[j];a[j]=temp;}

cout<<a[i];
}
}
第3个回答  2009-12-25
冒泡排序,数据结构上找找吧