有两处错误:
1:s[i]-->s[max]
2:第二段代码,应该是在第二重循环执行完之后。
不理解可以追问
void sort(int length,int *data)
{
int *s=data;
int i,j,k,max,temp;
for(i=0;i{
max=i;
for(k=i+1;k{
if(s[max]max=k;//max是存储数值最大的元素的下标
}
if(max!=i)
{
temp=s[max];//以下三行是将是将是s[i+1]~s[j]中最大元素与s[i]交换
s[max]=s[i];
s[i]=temp;
}
}
for(i=0;iprintf("%d\n",s[i]);
}
}
这样就对了,把 if(max!=i)
{
temp=s[max];//以下三行是将是将是s[i+1]~s[j]中最大元素与s[i]交换
s[max]=s[i];
s[i]=temp;
}
这段代码拿到k循环外才对