c语言指针排序
① c语言指针三个整数排序
#include<stdio.h>
int main()
{ int a,b,c,*p=&a,*q=&b,*r=&c,*t;
scanf("%d%d%d",&a,&b,&c);
if(*p>*q)
{ t=p;
p=q;
q=t;
}
if(*p>*r)
{ t=p;
p=r;
r=t;
}
if(*q>*r)
{ t=q;
q=r;
r=t;
}
printf("%d %d %d ",*p,*q,*r);
return 0;
}
② C语言编程:用指向指针的指针的方法对n个整数排序并输出。
#include<stdio.h>
#include<stdlib.h>
#defineMAXSIZE100
voidswap(int*,int*);
voidsort(int**,int);
intmain(void)
{
inti;
intn;
//整形数组
intarray[MAXSIZE];
//指针数组
int*pArray[MAXSIZE];
printf("pleaseentern: ");
scanf("%d",&n);
for(i=0;i<n;++i)
{
scanf("%d",&array[i]);
pArray[i]=&array[i];
}
sort(pArray,n);
for(i=0;i<n;++i)
{
printf("%d ",*pArray[i]);
}
return0;
}
//交换
voidswap(int*a,int*b)
{
inttemp=*a;
*a=*b;
*b=temp;
}
//排序
voidsort(int**array,intn)
{
int*p;
int*q;
for(p=*array;p<*array+n;++p)
{
for(q=p+1;q<*array+n;++q)
{
if(*p>*q)
{
swap(p,q);
}
}
}
}
③ c语言指针数组排序
p是int类型指针,指向数组a的第1个元素即一个一维的数组{1,2,3}首地址所以p[1]相当于a[0][1]所以printf("%d\n",p[1]);
输出2 。 int **pp =pa 是声明了一个指向pa的指针,而pa又是指向a首地址的int类型指针。pa指向的是a的第一维,pa[0] = a[0] ,pp[2][1]相当于a[2][1]而a数组的[2]中只初始化了[2][0]位置的7,那[2][1]位置就是默认的值0,所以printf("%d\n",pp[2][1]);
输出0
④ C语言指针实现整数排序
#include<stdio.h>
intmain()
{
inta[3],i,n,j;
int*q;
q=&a[0];//这里是将数组的第一位的地址赋值给指针q,也是数组a的首地址
for(i=0;i<3;i++)
{
printf("请输出1个整数:");
scanf("%d",&a[i]);
}
for(j=0;j<2;j++)//简单的排序。
{
for(i=0;i<2;i++)
{
if(*(q+j)<*(q+1+i))
{
n=*(q+j);
*(q+j)=*(q+1+i);
*(q+1+i)=n;
}
}
}
printf("三个整数是:%d,%d,%d ",*q,*(q+1),*(q+2));
}
这道题的主要是弄清楚指针的加法和排序的方法。
⑤ 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;
}
}
(5)c语言指针排序扩展阅读:
其它方法:
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语言用指针给数组排序和插入
#include<stdio.h>
#definesize8//元素数组元素个数
intmain()
{
inti,nums[size]={13,27,38,49,65,76,97},n,index,*p=&nums[size-1];
printf("原数组:");
for(i=0;i<size-1;i++)
printf("%d",nums[i]);
printf("
输入要插入的数字:");
scanf("%d",&n);
printf("输入要插入在第几个数字后面:");
scanf("%d",&index);
while(p>&nums[index])
{
*p=*(p-1);
p--;
}
*p=n;
printf("插入后的数组:");
for(i=0;i<size;i++)
printf("%d",nums[i]);
return0;
}
⑦ C语言 指针 排序法
for(i=0;i<10;p++)
{
if(*pmax<*p)
pmax=p;
if(*pmin>*p)
pmin=p;
}
这里有错!~ for(i=0;i<10;p++)这里出错了~~`