您的位置:

指针冒泡排序法c语言代码,用指针实现冒泡排序法

本文目录一览:

一个C程序关于指针冒泡排序法!

#define N 10

#include "stdio.h"

void sort(int *p1,int n)

{

int i,j,temp;

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

{

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

{

if(*(p1+i)*(p1+j))

{

temp=*(p1+i);*(p1+i)=*(p1+j);*(p1+j)=temp;

}

}

}

}

main()

{

int a[N]={100,90,80,70,60,50,40,30,20,10},*p=a;

int i;

puts("before invert");

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

{

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

}

puts("\ninverting.....");

p=a;sort(p,N);

printf("leter");

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

{

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

}

}

编写一个C语言程序,使用指针实现冒泡排序。

修改后的程序

#include

stdio.h

#define

n

7

int

main()

{

int

i,j,ptr_2=0;

int

a[n],*ptr_1;

ptr_1=a[0];

printf("输入%d个数:",n);

for

(i=0;in;i++)

{

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

}

printf("ok1\n");

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

{

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

{

if

(*(ptr_1+j)

*(ptr_1+j+1))

{

ptr_2=*(ptr_1+j+1);

*(ptr_1+j+1)=*(ptr_1+j);

*(ptr_1+j)=ptr_2;

}

}

}

printf("排序后的数为:

");

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

{

printf("%d

",*ptr_1);

ptr_1++;

}

printf("\n");

return

0;

}

注意ptr_2是指针,未申请空间不能*ptr_2复值。

c语言 指针的方法 对一维数组进行 冒泡排序

大概思路:用指针p指向数组的首地址,用指针去引用数组中的各个元素,并对数组中各个元素就行运算和比较操作了,代码可以参照如下:

#include

stdio.h

#include

stdlib.h

int

main()

{

int

array[5];

int

i,j,*p,temp;

p=array;

printf("please

input

some

integer:\n");

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

{

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

}

p=array;

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

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

{

printf("%-5d",*p++);

}

p=array;

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

{

for(j=0;j4-i;j++)

{

if(*(p+j)*(p+j+1))

//用指针去引用数组中的元素并进行比较

{

temp=*(p+j);

*(p+j)=*(p+j+1);

*(p+j+1)=temp;

}

}

}

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

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

{

printf("%-5d",*p++);

}

return

0;

}