有n個整數,使前面各數順序向后移m個位置,最后m個數變成前面m個數,見圖。寫一函數:實現以上功能,在主函數中輸入n個數和輸出調整后的n個數。
看了下上機指導上的答案,感覺自己寫的這段代碼有點low。
//一個數組一個指針 #include <stdio.h> #define N 10 #define M 3 int b[N]; int * p=b; int main(){ void change(int a[N],int m); int a[N]={1,2,3,4,5,6,7,8,9,0}; change(a,M); for(int j=0;j<N; j++){ printf("%3d",*(p+j)); } printf("\n"); return 0; } void change(int a[N],int m){ int i,j; for(i=0; i<m; i++){ *(p+i)=a[N-m+i]; } for(j=m;j<N;j++){ *(p+j)=a[j-m]; } }
結果:
