C 實戰練習題目68

題目:有 n個整數,使其前面各數順序向後移 m 個位置,最後m個數變成最前面的 m 個數。html

程序分析:無。數組

實例:學習

 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 }

感謝你的閱讀,請用心感悟!但願能夠幫到愛學習的你!!分享也是一種快樂!!!請接力。。。spa

點擊查看原文,謝謝!code

相關文章
相關標籤/搜索