C语言使用指针实现选择法排序。

Python015

C语言使用指针实现选择法排序。,第1张

#include<stdio.h>

voidprint_result(float*,int);

voidSelect_Sort(float*,int);

intmain()

inti;

floatarray[10];

float*pointer;

printf("请输入10个数:\n");

for(i=0;i<10;i++)

scanf("%f",&array[i]);

pointer=array;

Select_Sort(pointer,10);

print_result(pointer,10);

return0;

voidprint_result(float*p,intn)

{//输出结果

intk;

for(k=0;k<n;k++)

printf("%g\t",*(p+k));

voidSelect_Sort(float*pt,intn)

{//全用指针的选择排序法

inti,j,k;

floattempnum;

for(i=0;i<n;i++){

k=i;

for(j=i+1;j<n;j++)

if(*(pt+j)>*(pt+i))

k=j;

tempnum=*(pt+i);

*(pt+i)=*(pt+k);

*(pt+k)=tempnum;

扩展资料:

其它方法:

voidSelectSort(intarr[],intn)

printf("\n选择排序法过程:\n");

inti,j,k,l,t;

for(i=0;i<n;i++)

k=i;

for(j=i+1;j<n;j++)

if(arr[j]<arr[k])

k=j;

if(k!=i)

t=arr[i];arr[i]=arr[k];arr[k]=t;

for(l=0;l<n;l++)

printf("%3c",arr[l]);

printf("\n");

#include<stdio.h>

void input(int *p,int num)

{

//

int a[10]不能在子函数中再定义了,要用形参对应的实参, 子函数中定义的是局部变量,函数完成时,变量就释放了。

//

for(p=ap<a+10p++)

int i

for(i=0i<numi++)

scanf("%d",p+i)

}

void sort(int *p,int num)

{

//

int a[10]同前

int i,j,temp

//

for(p=ap<a+10p++)

for(i=0i<numi++) //数组下标从0开始

{

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

if(p[i]<p[j])

{

temp=p[i]

p[i]=p[j]

p[j]=temp

}

}

}

void output(int *p,int num)

{

//int a[10]同前

//

for(p=ap<a+10p++)

int i

for(i=0i<numi++)

printf("%d ",*(p+i))

}

int main()

{

int a[10]

input(a,10)

sort(a,10)

output(a,10)

return 0

}