(用指针方法处理)有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数。编写一个函数实现上述功能,在主函数中输入n个整数,并输出调整后的n个数


第一种方法:指针法

#include
#include
int  w(int *d,int e,int g)
{
     int i,j,t;
     int *r;
     j=0;
   for(i=0;i    {
     t=*(d+i);
    *(d+i)=*(d+e-g+j);
    *(d+e-g+j)=t;
      j++;            
                   } 
     return *d;
     }
 int main()
{
   int a[100];
   int i,j,k,n,m;
      scanf("%d%d",&n,&m);
      for(i=0;i       scanf("%d",&a[i]);
      k=n;
      w(a,k,m);
     for(i=0;i       printf("%d ",a[i]);
      printf("\n");
      system("pause");
      return 0;
      }

第二种方法:数组法
#include
#include
void  w(int d[],int e,int g)
{
     int i,j,t;
     //int *r;
     j=e;
   for(i=0;i    {
     t=d[i];
     d[i]=d[j-1];
     d[j-1]=t;
      j--;            
                   } 
       for(i=0;i       printf("%d ",d[i]);
      printf("\n");
                   //return *d;
     }
 int main()
{
   int a[100];
   int i,j,k,n,m;
      scanf("%d%d",&n,&m);
      for(i=0;i       scanf("%d",&a[i]);
      k=n;
      w(a,k,m);
     /* for(i=0;i       printf("%d ",a[i]);
      printf("\n");*/
      system("pause");
      return 0;
      }

你可能感兴趣的:(c语言)