本文目录一览:
一个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;
}