016. C语言基础

//  151.c
#include<stdio.h>  //能实现交换
void fun(int *p,int *q)
{
   int t;
   t=*p;*p=*q;*q=t;
}
void main()
{
   int a=3,b=5;
   fun(&a,&b);
   printf("%d %d",a,b);
   getch();
}
//   152.c
#include<stdio.h>  //能实现交换,但第4行不对
void fun(int *p,int *q)
{
   int *t;
   *t=*p;*p=*q;*q=*t;
}
void main()
{
   int a=3,b=5;
   fun(&a,&b);
   printf("%d %d",a,b);
   getch();
}

//  153.c
//寡指针写法实现排序
#include<stdio.h>
void main()
{
   int a[]={1,2,3,4,5,6,7,8,9,10},*p,*q,t;
   for(p=a;p<a+9;p++)
     for(q=p+1;q<a+10;q++)
       if(*p<*q)
       {
          t=*p;*p=*q;*q=t;
       }
    for(p=a;p<a+10;p++)
      printf("%3d",*p);
    getch();
}
//   154.c
//寡指针写法实现排序
#include<stdio.h>
void main()
{
   int a[]={1,2,3,4,5,6,7,8,9,10},*p,*q,t;
   for(p=a;p<a+9;p++)
     for(q=a;q<a+9-(p-a);q++)
       if(*q<*(q+1))
       {
         t=*q;*q=*(q+1);*(q+1)=t;
       }
    for(p=a;p<a+10;p++)
      printf("%3d",*p);
    getch();
}

//   155.c
//选择排序法
#include<stdio.h>
void main()
{
   int a[]={1,2,3,4,5,6,7,8,9,10},*p,*q,*m,t;

   for(p=a;p<a+9;p++)
   {
      m=p;
      for(q=p+1;q<a+9;q++)
         if(*m<*q)m=q;
      t=*p;
      *p=*m;
      *m=t;
   }
    for(p=a;p<a+10;p++)
      printf("%3d",*p);
    getch();
}

//    156.c
//寡指针写法实现排序
#include<stdio.h>
void main()
{
   int a[]={1,2,3,4,5,6,7,8,9,10},*p,t;
   int i,j;
   for(i=1;i<10;i++)
   {
      t=a[i];
      j=i-1;
      while(t>a[j]&&j>=0)
      {
         a[j+1]=a[j];
         j--;
      }
      a[j+1]=t;
   }
    for(p=a;p<a+10;p++)
      printf("%3d",*p);
    getch();
}
//    157.c
#include<stdio.h>
void main()
{
  int a[]={1,2,3,4,5},*p,*q,t;
  p=a;
  q=a+4;
  while(p<q)
  {
     t=*p;*p=*q;*q=t;
     p++;
     q--;
  }
  for(p=a;p<a+5;p++)
    printf("%3d",*p);
  getch();
}
//    158.c
#include<stdio.h>
void fun(int *a,int n)
{
   int *q,t;
   if(n==1)return ;
   for(q=a+1;q<a+n;q++)
     if(*a<*q){
       t=*a;*a=*q;*q=t;
     }
   fun(a+1,n-1);
}
void main()
{
   int a[]={1,2,3,4,5,6,7,8,9,10},*p;
   fun(a,10);
   for(p=a;p<a+10;p++)
     printf("%3d",*p);
   getch();
}
//    159.c
#include<stdio.h>
void main()
{
    int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12},
    b[12],*p,*q;
    p=*a;q=b;
    while(p<*a+12)
    {
       *q=*p;
       q++;
       p++;
    }
    for(q=b;q<b+12;q++)
      printf("%3d",*q);
    getch();
}
//   160.c
#include<stdio.h>
void fun(int a[],int n)
{
   int *p,t;
   p=a+n-1;
   t=*p;
   while(p>a)
   {
      *p=*(p-1);
      p--;
   }
   *p=t;
}
void main()
{
   int n=5,a[]={1,2,3,4,5},*p;
   while(n)
   {
      fun(a,5);
      for(p=a;p<a+5;p++)
        printf("%3d",*p);
      printf("\n");
      n--;
   }
   getch();
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容