c语言指针选择排序函数,c语言选择排序函数调用

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

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

虹口ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!

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语言 指针 字符串 排序

对指针数组分配个长度

可以这样

{

s[i]

=

(char

*)malloc(sizeof(char)

*

1024);

scanf("%s",s[i]);

}

最后记得释放

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

{

printf("%s:\t",s[i]);

free(s[i]);

}

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语言选择排序法,第一次用指针

#includestdio.h

#include"stdlib.h"// system("psuse");

void sort(int *a,int b);

int main()

{

int i;

int a[]={5,15,1,53,21,98,7,6,3,74};

sort(a,sizeof(a)/sizeof(int));//引用函数

for(i=0;isizeof(a)/sizeof(int);i++)

{

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

if(i%2)

printf("\n");

}//这里加了一个括号

system("pause");//按任意键继续....

return 0;

}

void sort(int *a,int b)//冒泡法升序排列

{

int j,k;

for(j=0;jb-1;j++)

{

for(k=0;kb-j-1;k++)

{

if(a[k]a[k+1])

{

a[k]=a[k]*a[k+1];//交换   不用引入第三变量

a[k+1]=a[k]/a[k+1];

a[k]=a[k]/a[k+1];

}//end if

}//end for

}//end for

}

运行结果


分享文章:c语言指针选择排序函数,c语言选择排序函数调用
本文来源:http://hbruida.cn/article/dsgjhog.html