1. 程式人生 > >(用指標方法處理)有n個整數,使前面各數順序向後移m個位置,最後m個數變成最前面m個數。編寫一個函式實現上述功能,在主函式中輸入n個整數,並輸出調整後的n個數

(用指標方法處理)有n個整數,使前面各數順序向後移m個位置,最後m個數變成最前面m個數。編寫一個函式實現上述功能,在主函式中輸入n個整數,並輸出調整後的n個數

第一種方法:指標法

#include<stdio.h>
#include<stdlib.h>
int  w(int *d,int e,int g)
{
     int i,j,t;
     int *r;
     j=0;
   for(i=0;i<g;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<n;i++)
      scanf("%d",&a[i]);
      k=n;
      w(a,k,m);
     for(i=0;i<n;i++)
      printf("%d ",a[i]);
      printf("\n");
      system("pause");
      return 0;
      }

第二種方法:陣列法
#include<stdio.h>
#include<stdlib.h>
void  w(int d[],int e,int g)
{
     int i,j,t;
     //int *r;
     j=e;
   for(i=0;i<g;i++)
   {
     t=d[i];
     d[i]=d[j-1];
     d[j-1]=t;
      j--;            
                   } 
       for(i=0;i<e;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<n;i++)
      scanf("%d",&a[i]);
      k=n;
      w(a,k,m);
     /* for(i=0;i<n;i++)
      printf("%d ",a[i]);
      printf("\n");*/
      system("pause");
      return 0;
      }