#include
int max(int a[],int len)
{
int maxid = 0;
int i;
for(i=0;i
{
if(a[i]>a[maxid])
{
maxid = i;
}
}
return maxid;
}
int main()
{
int i,t;
int maxid;
int a[]={2,45,6,12,87,34,90,24,23,11,65};
int len = sizeof(a)/sizeof(a[0]);
for( i=len-1;i>0;i--){
int maxid=max(a,i+1);
t = a[maxid];
a[maxid]=a[i];
a[i]=t;
}
for(i=0;i
{
printf("%d ",a[i]);
}
return 0;
}
max函数里for循环第二个循环终止表达式sizeof(a)/sizeof(a[0])结果不会得到数组长度,将它改为len
for(i=0;i<sizeof(a)/sizeof(a[0]);i++)
改成for(i=0;i<n;i++)
已经传递n参数了,还用sizeof来计算。而且函数内是不可以用sizeof计算数组参数长度的