C语言:以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序

来源:百度知道 编辑:UC知道 时间:2024/06/07 13:18:28
#include <stdio.h>
void sort(int a[],int n)
{ int i,j,t;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]<a[j])
{ t=a[i];a[i]=a[j];a[j]=t;}
}
main()
{ int aa[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(&aa[3],5);
for(i=0;i<10;i++)
printf("%d",aa[i]);
}

主要是里面这个sort(&aa[3],5);不太明白,拜托大侠帮忙解释下。谢谢!

sort(&aa[3],5);
表示从aa[3]这个元素往后5个元素进行排序,也就是4,5,6,7,8这几个数进行排序,其余元素不变。

其实,从函数的定义也能看出来,void sort(int a[],int n),其中int a[]是表示开始排序的首地址,int n表示参与排序元素的个数,如果这样调用sort(aa,10)那就是对整个数组进行排序,因为aa(数组名)表示数组的首地址,当然&aa[3]也是同理的了。。

sort(&aa[3],5);

说明对aa[]数组中从aa[3]开始的5个元素进行排序,其余元素不参与排序.

对aa[]数组中从aa[3]开始的5个元素进行排序,其余元素不参与排序.

fd

爱因斯坦快帮我,这题太难