有 n個整數,使其前面各數順序向後移 m 個位置,最後m個數變成最前面的 m 個數。
假設n
的值為10
即陣列arr
大小為10
,單獨觀察一次偏移的過程,可以發現就是事先把最後乙個值arr[9]
用臨時變數t
暫存起來,然後將整個陣列向後移位一次,此時再將暫存的arr[9]
賦值給arr[0]
,這樣就完成了一次偏移,那麼一共要偏移m
次,就將迴圈執行m
次即可。
#include
#define n 10
// 假定陣列大小為10
intmain()
;int m;
int i;
// 迴圈控制變數
int j;
// 迴圈控制變數
int t;
// 臨時變數
printf
("請輸入偏移量m的值:"
,&m)
;scanf
("%d"
,&m)
;for
(i =
0; i < m; i++
) arr[0]
= t;
// 將暫存的最後乙個元素儲存在第乙個位置
}// 輸出陣列
for(i =
0; i < n; i++
)}
ps e:\c++workspace> cd "e:\c++workspace\" ;
if($?);
if($?
)請輸入偏移量m的值:289
0123
4567
ps e:\c++workspace> cd "e:\c++workspace\" ;
if($?);
if($?
)請輸入偏移量m的值:556
7890
1234
C語言經典例程 經典c程式2例
前言 this article mainly introduces the classical routine of c language,2 cases of classical c program.friends who study c language can refer to it.程式1 ...
(C語言)PAT乙等1008陣列元素迴圈右移問題
一 題目 乙個陣列a中存有n 0 個整數,在不允許使用另外陣列的前提下,將每個整數迴圈向右移m 0 個位置。如果需要考慮程式移動資料的次數盡量少,要如何設計移動的方法?輸入格式 每個輸入包含乙個測試用例,第1行輸入n 1 n 100 和m 0 第2行輸入n個整數,之間用空格分隔。輸出格式 在一行中輸...
C語言經典100例 002
企業發放的獎金根據利潤提成.利潤 i 低於或等於10萬元時,獎金可提10 利潤高於10萬元,低於20萬元時,低於10萬元的部分按10 提成,高於10萬元的部分,可可提成7.5 20萬到40萬之間時,高於20萬元的部分,可提成5 40萬到60萬之間時高於40萬元的部分,可提成3 60萬到100萬之間時...