習題8 3 陣列迴圈右移 20分

2021-10-17 08:44:26 字數 1108 閱讀 3806

本題要求實現乙個對陣列進行迴圈右移的簡單函式:乙個陣列a中存有n(>0)個整數,將每個整數迴圈向右移m(≥0)個位置,即將a中的資料由(a0a1⋯an−1)變換為(an−m⋯an−1a0a1⋯an−m−1)(最後m個數迴圈移至最前面的m個位置)。

函式介面定義:

int

arrayshift

(int a,

int n,

int m )

;

其中a[ ]是使用者傳入的陣列;n是陣列的大小;m是右移的位數。函式arrayshift須將迴圈右移後的陣列仍然存在a中。

裁判測試程式樣例:

#include

#define maxn 10

intarrayshift

(int a,

int n,

int m )

;int

main()

printf

("\n");

return0;

}/* 你的**將被嵌在這裡 */

輸入樣例:

621

2345

6

輸出樣例:

561234

解答:

int

arrayshift

(int a,

int n,

int m )

for(j=

0;j)else

}return a;

}

先把a陣列複製乙份記做t陣列,設n=7,m=2

假設a陣列為[1,2,3,4,5,6,7],則此時t陣列也為[1,2,3,4,5,6,7]

a陣列向右移位2次後為:[6,7,1,2,3,4,5],這是應該返回的陣列a

習題8 3 陣列迴圈右移(20 分)

本題要求實現乙個對陣列進行迴圈右移的簡單函式 乙個陣列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...

習題8 3 陣列迴圈右移 (20 分)

本題要求實現乙個對陣列進行迴圈右移的簡單函式 乙個陣列a中存有n 0 個整數,將每個整數迴圈向右移m 0 個位置,即將a中的資料由 最後m個數迴圈移至最前面的m個位置 函式介面定義 int arrayshift int a,int n,int m 其中a是使用者傳入的陣列 n是陣列的大小 m是右移的...

習題8 3 陣列迴圈右移 20分

進博主技術群,與大佬交流,領取乾貨學習資料 快速找到所需題目 浙大版c語言程式設計第三版題目集一覽表 本題要求實現乙個對陣列進行迴圈右移的簡單函式 乙個陣列a中存有n 0 個整數,將每個整數迴圈向右移m 0 個位置,即將a中的資料由 a 0 a1 a n 1 變換為 a n m a n 1a0a1 ...