山科 實驗 Problem B 陣列迴圈移位

2021-09-02 02:35:24 字數 800 閱讀 3531

description

將乙個一維陣列向右或者向左進行迴圈移位。

input

輸入為多行。第一行是m>0,表示之後有m組資料作為輸入。

之後的m行,每一行的第乙個整數0<=n<=10,表示輸入的陣列有n個元素;如果n>0,則該行的第二個整數r是乙個有效的int型別的數值,表示迴圈移位的位數。之後有n個int型別的整數作為一維陣列的元素(如果n>0的話),每2個元素之間用乙個空格隔開。如果n=0,則該行只有乙個資料「0」,表示這是乙個空陣列。

output

輸出有m行,與上述輸入的m行資料一一對應。

如果n=0,則輸出乙個空行。

如果n>0,r>0,則表示迴圈右移r個數;否則,若n>0,r<0,表示迴圈左移r個數;若n>0,r=0,表示不移動。

當n>0時,輸出的資料中,兩兩之間用乙個空格隔開。

sample input

35 1 10 9 8 7 6

04 -2 100 200 300 400

sample output

6 10 9 8 7

300 400 100 200

hint

#includeint main()

if(n == 0)

printf("\n");

else

printf("%d",a[0]);

for(j = 1; j < n; j++)

printf(" %d",a[j]);

printf("\n");}}

return 0;

}

實驗8 1 7 陣列迴圈右移

兩種方法 方法一 此方法要開闢乙個新空間來存放陣列 int arrayshift int a,int n,int m 方法二 此方法不用開闢新空間 void reverse int a,int left,int right left為陣列中第乙個元素的下標,right為陣列中最後乙個元素的下標。in...

山科 實驗 Problem A 求最大值和最小值

求出一些整數中的最大值和最小值。輸入為多行,以eof結束。每行為乙個十進位制的數字,全部由0 9組成,每行最長不超過1000個字元。有些數字會以0開頭 不影響數值大小的前導0 輸出為輸入中的最大值和最小值,格式見sample。02010 0012 01223 the maximum value is...

實驗8 1 7 陣列迴圈右移 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...