有n個整數,使前面各數順序向後移m個位置,最後m個數變成最前面m個數

#include<stdio.h>
#include<stdlib.h>
int main()

 void move(int a[],int m,int n);

 int a[20],n,m,i;

 printf("共有幾個數字?\n");

 scanf("%d",&n);

 for(i=0;i<n;i++)
 {
  printf("請輸入第%d個數字:\n",i+1);
  scanf("%d",&a[i]);
 }

 printf("向後移動幾位?\n");

 scanf("%d",&m);

 move(a,m,n);

 printf("向後移動%d位後的%d個數字如下:\n",m,n);

 for(i=0;i<n;i++)
  printf("%5d",a[i]);

 printf("\n");

 return 0;
}
void move(int a[],int m, int n)
{
 int a_end,*i;

 a_end=*(a+n-1);

 for(i=a+n-1;i>a;i--)
   *i=*(i-1);

 *i=a_end;
 m--;

 if(m>0)
  move(a,m,n);

}

發佈了14 篇原創文章 · 獲贊 20 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章