C++实现数的从大到小的排列,

#include<iostream.h>
void sort(int a[],int n)
{
int i,j,temp;
for(i=0;i<n-1;i++)
for(j=i+1; j<n-i-1 ;j++)
if( a[i]<a[j] )//(我自己填空的)
{temp=a[i];a[i]=a[j];a[j]=temp;}
}
void main(void)
{
int a[]={1,3,5,7,9,2,4,6,8,12};
sort(a,10) ;//调用函数sort对数组排序(填空的)
for(int i=0;i<10;i++)
cout<<a[i]<<'\t';
}
填充程序空白部分,实现数组从大到小排序。
请问我填空的地方哪有问题那~?

你的填空的是正确的,错误的是该程序的提供者:
#include<iostream.h>
void sort(int a[],int n)
{
int i,j,temp;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)// j是随着i的增长逐步向n靠拢.是提供者犯逻辑错误
if(a[i]<a[j])//(我自己填空的)
{temp=a[i];a[i]=a[j];a[j]=temp;}
}
void main(void)
{
int a[]={1,3,5,7,9,2,4,6,8,12};
sort(a,10)    ;//调用函数sort对数组排序(填空的)
for(int i=0;i<10;i++)
cout<<a[i]<<'\t';
}

温馨提示:答案为网友推荐,仅供参考