題目:有 n個整數,使其前面各數順序向后移 m 個位置,最后m個數變成最前面的 m 個數,
程式分析:無,
實體:
1 #include <stdio.h> 2 #include <stdlib.h> 3 int main() 4 { 5 int arr[20]; 6 int i,n,offset; 7 //輸入陣列大小和陣列內容 8 printf("Total numbers?\n"); 9 scanf("%d",&n); 10 printf("Input %d numbers.\n",n); 11 for(i=0;i<n;i++) 12 scanf("%d",&arr[i]); 13 //輸入滾動偏移量 14 printf("Set your offset.\n"); 15 scanf("%d",&offset); 16 printf("Offset is %d.\n",offset); 17 //列印滾動前陣列 18 print_arr(arr,n); 19 //滾動陣列并列印 20 move(arr,n,offset); 21 print_arr(arr,n); 22 } 23 24 //列印陣列 25 void print_arr(int array[],int n) 26 { 27 int i; 28 for(i=0;i<n;++i) 29 printf("%4d",array[i]); 30 printf("\n"); 31 } 32 //滾動陣列 33 void move(int array[],int n,int offset) 34 { 35 int *p,*arr_end; 36 arr_end=array+n; //陣列最后一個元素的下一個位置 37 int last; 38 39 //滾動直到偏移量為0 40 while(offset) 41 { 42 last=*(arr_end-1); 43 for(p=arr_end-1;p!=array;--p) //向右滾動一位 44 *p=*(p-1); 45 *array=last; 46 --offset; 47 } 48 }
感謝你的閱讀,請用心感悟!希望可以幫到愛學習的你!!分享也是一種快樂!!!請接力,,,
點擊查看原文,謝謝!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/4993.html
標籤:C
上一篇:C 實戰練習題目67
下一篇:C 實戰練習題目69
