C语言,选择法进行降序排序。我写的选择排序程序如下,但运行之后还是原来数组的顺序 请大神指教

Python018

C语言,选择法进行降序排序。我写的选择排序程序如下,但运行之后还是原来数组的顺序 请大神指教,第1张

有两处错误:

1:s[i]-->s[max] 

2:第二段代码,应该是在第二重循环执行完之后。 

不理解可以追问

#include "stdio.h"//#include <stdlib.h>//#include <time.h>//void Selectsort(int *p){ int i,j,k for(i=0i<10i++){k=i for(j=k+1j<10j++)if(*(p+k)<*(p+j)) k=j j=*(p+i) *(p+i)=*(p+k) *(p+k)=j }} void main(void){int a[10],i srand((unsigned)time(NULL)) for(i=0i<10*(a+i++)=rand())Selectsort(a) for(i=0i<10i++)//打出来看看.printf("%d ",a[i]) printf("\n")}

#include "stdio.h"

#define MAX 10

void sort(int *p,int n)

{int i,j

int temp//记录每一轮比较中最大值

int maxindex//记录每一轮比较中最大值的下标

for (i=0i<ni++)

{

temp=p[i]

maxindex=i

for (j=i+1j<nj++)

if (temp<p[j]) {temp=p[j]maxindex=j}

if(maxindex!=i){p[maxindex]=p[i]p[i]=temp}

}

}

/*

void sort(int *p)

{int i,j,k

for (i=0i<9i++)

for (j=i+1j<10j++)

if (p[i]<p[j]) {k=p[i]p[i]=p[j]p[j]=k}

这个是简单选择排序,但是执行效率没有上面的高。不过对于比较小的基数,还是看不出来效率的优劣,如果在基数上百万时,效率高的执行时间将节省不少。

*/

main()

{

int a[MAX],i

for (i=0i<MAXi++)

scanf("%d",&a[i])

sort(a,MAX)

for(i=0i<MAXi++)

printf("%d ,",a[i])

}