c语言用指针函数怎么排序,C语言用函数排序

C语言指针实现整数排序

#includestdio.h

目前创新互联公司已为千余家的企业提供了网站建设、域名、虚拟空间、网站托管、企业网站设计、富阳网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

int main()

{

int a[3],i,n,j;

int *q;

q=a[0];  //这里是将数组的第一位的地址赋值给指针q,也是数组a的首地址

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

{

printf("请输出1个整数:");

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

}

for(j=0;j2;j++)   //简单的排序。

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

{

if(*(q+j)*(q+1+i))

{

n=*(q+j);

*(q+j)=*(q+1+i);

*(q+1+i)=n;

}

}

}

printf("三个整数是:%d,%d,%d\n",*q,*(q+1),*(q+2));

}

这道题的主要是弄清楚指针的加法和排序的方法。

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语言使用指针实现选择法排序。

#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语言用指针函数怎么排序,C语言用函数排序
网页地址:http://pwwzsj.com/article/dsgpico.html