本題要求實現乙個對陣列進行迴圈右移的簡單函式:乙個陣列a中存有n(>0)個整數,將每個整數迴圈向右移m(≥0)個位置,即將a中的資料由(a
0 a
1 ⋯a
n−1
)變換為(a
n−m
⋯a
n−1
a
0 a
1 ⋯a
n−m−1
)(最後m個數迴圈移至最前面的m個位置)。
函式介面定義:
int arrayshift( int a, int n, int m );
其中a是使用者傳入的陣列;n是陣列的大小;m是右移的位數。函式arrayshift須將迴圈右移後的陣列仍然存在a中。
裁判測試程式樣例:
#include
#define maxn 10
int arrayshift( int a, int n, int m );
int main()
printf("\n");
return 0;
}/* 你的**將被嵌在這裡 */
輸入樣例:
6 21 2 3 4 5 6
輸出樣例:
5 6 1 2 3 4
int
arrayshift
(int a,
int n,
int m )
/*for (i = 0; i <= n - 1 - m; i++)
*/for(i = n - m -
1, j =
0; i >=
0; i--
)/*for (i = 0; i < n; i++)
a[i] = b[i];*/
for(i =
0; i < m; i++
)}
PTA 陣列元素迴圈右移問題
乙個陣列aaa中存有n 0 個整數,在不允許使用另外陣列的前提下,將每個整數迴圈向右移m 0 個位置,即將aaa中的資料由 a 0 a 1 a n 1 變換為 a n m a n 1 a 0 a 1 a n m 1 最後m個數迴圈移至最前面的m個位置 如果需要考慮程式移動資料的次數盡量少,要如何設計...
PTA 陣列元素迴圈右移問題
乙個陣列a中存有n 0 個整數,在不允許使用另外陣列的前提下,將每個整數迴圈向右移m 0 個位置,即將a中的資料由 a 0 a 1 a n 1 變換為 a n m a n 1 a 0 a 1 a n m 1 最後m個數迴圈移至最前面的m個位置 如果需要考慮程式移動資料的次數盡量少,要如何設計移動的方...
PTA 1008 陣列元素迴圈右移問題
乙個陣列a中存有n 0 個整數,在不允許使用另外陣列的前提下,將每個整數迴圈向右移m 0 個位置,即將a中的資料由 a 0 a 1 a n 1 變換為 a n m a n 1 a 0 a 1 a n m 1 最後m個數迴圈移至最前面的m個位置 如果需要考慮程式移動資料的次數盡量少,要如何設計移動的方...