189 8069 5689

c语言用指针定义排序函数 c语言用指针定义排序函数的方法

编写一个C语言程序,利用指针对数组进行排序,并解释所编写的代码?

#include

目前累计服务客户1000多家,积累了丰富的产品开发及服务经验。以网站设计水平和技术实力,树立企业形象,为客户提供成都网站制作、网站建设、网站策划、网页设计、网络营销、VI设计、网站改版、漏洞修补等服务。创新互联始终以务实、诚信为根本,不断创新和提高建站品质,通过对领先技术的掌握、对创意设计的研究、对客户形象的视觉传递、对应用系统的结合,为客户提供更好的一站式互联网解决方案,携手广大客户,共同发展进步。

stdio.h

void

Sort(

int

*s,

int

n

)

{

int

*p

=

s;

//定义一个指向数组首地址的指针

int

*q,

tmp;

for(

;

p

s+10;

p++

)

//当指针移动到数组的末端结束

{

for(

q

=

p

;

q

s+10;

q++

)

//按照插入排序的方式执行

{

if(

*q

*p

)

{

tmp

=

*p;

*p

=

*q;

*q

=

tmp;

}

}

}

}

int

main()

{

int

i;

int

s[10]

=

{9,8,7,6,5,4,3,2,1,0};

Sort(s,10);

//调用排序函数

for(

i

=

0;

i

10;

++i

)

//输出排序后的结果

{

printf("%d

",s[i]);

}

printf("\n");

return

0;

}

C语言程序设计之中的 指针排序

#includestdio.h

void input(int *p,int num)

{

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

// for(p=a;pa+10;p++)

int i;

for(i=0;inum;i++)

scanf("%d",p+i);

}

void sort(int *p,int num)

{

// int a[10]; 同前

int i,j,temp;

// for(p=a;pa+10;p++)

for(i=0;inum;i++) //数组下标从0开始

{

for(j=i+1;jnum;j++)

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=a;pa+10;p++)

int i;

for(i=0;inum;i++)

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

}

int main()

int a[10]; 

input(a,10); 

sort(a,10); 

output(a,10); 

return 0;

}

c语言用指针写选择法排序函数

你的程序没错,只不过这不是选择法,是冒泡发,选择发如下:

void sort(int *a,int n)

{

int i,j,t,temp;

for(i=0;in-1;i++)

{

t=i;/初始定义t为未排序数的第一个

for(j=i+1;jn;j++)

{

if(*(a+t)*(a+j))/挑选出更大的数的位置,把他赋给t

t=j;

}

temp=*(a+i); /t是最大的那个数的位置,把他和未排序的第一个交换位置

*(a+i)=*(a+t);

*(a+t)=temp;

}

}

main()

{

int i,a[10],*p=a;

printf("input zhe array a:\n");

for(i=0;i10;i++)

scanf("%d",p++);

printf("\n");

p=a;

sort(p,10);

p=a;

printf("zhe sort array is:\n");

for(i=0;i10;i++)

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

getch();

}

c语言编程题 利用指针编写函数用选择法对整数数组排序(降序)。 求大神帮忙啊!!!谢谢

#includestdio.h

void Sort(int *a,int n) {

int *p,*q,*v,t;

for(p = a;p  a + n - 1;++p) {

v = p;

for(q = p + 1; q  a + n; ++q)

if(*v  *q) v = q;

if(*p != *v) {

t = *p;

*p = *v;

*v = t;

}

}

}

void Show(int *a,int n) {

int i;

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

printf("%d ",*(a + i));

printf("\n");

}

int main() {

int a[] = {23,12,54,89,66,59,57,48,91,20,31};

int n = sizeof(a)/sizeof(a[0]);

printf("排序前:\n");

Show(a,n);

printf("排序后:\n");

Sort(a,n);

Show(a,n);

return 0;

}

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

#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");

c语言用指针写选择排序法

你的程序没错,只不过这不是选择法,是冒泡发,选择发如下:

void sort(int *a,int n)

{

int i,j,t,temp;

for(i=0;in-1;i++)

{

t=i;/初始定义t为未排序数的第一个

for(j=i+1;jn;j++)

{

if(*(a+t)*(a+j))/挑选出更大的数的位置,把他赋给t

t=j;

}

temp=*(a+i); /t是最大的那个数的位置,把他和未排序的第一个交换位置

*(a+i)=*(a+t);

*(a+t)=temp;

}

}

main()

{

int i,a[10],*p=a;

printf("input zhe array a:\n");

for(i=0;i10;i++)

scanf("%d",p++);

printf("\n");

p=a;

sort(p,10);

p=a;

printf("zhe sort array is:\n");

for(i=0;i10;i++)

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

getch();

}


当前标题:c语言用指针定义排序函数 c语言用指针定义排序函数的方法
本文链接:http://cdxtjz.com/article/hjdehh.html

其他资讯