數(shù)組循環(huán)左移m位的算法 C語(yǔ)言,數(shù)組循環(huán)右移?
C語(yǔ)言,數(shù)組循環(huán)右移?事實(shí)上,用一個(gè)變量保存第一個(gè)元素(如[0]),然后將后一個(gè)元素的值賦給前一個(gè)元素,最后將保存[0]的變量的值賦給最后一個(gè)元素非常簡(jiǎn)單。對(duì)于數(shù)組,應(yīng)該使用雙循環(huán)。外循環(huán)表示需要向左
C語(yǔ)言,數(shù)組循環(huán)右移?
事實(shí)上,用一個(gè)變量保存第一個(gè)元素(如[0]),然后將后一個(gè)元素的值賦給前一個(gè)元素,最后將保存[0]的變量的值賦給最后一個(gè)元素非常簡(jiǎn)單。對(duì)于數(shù)組,應(yīng)該使用雙循環(huán)。外循環(huán)表示需要向左移動(dòng)的次數(shù),內(nèi)循環(huán)表示將每個(gè)元素向左移動(dòng)
程序如下:#include<stdio。H>#包括<stdlib。H> main(){int*a,N,N,I,J,TMP printf(“輸入數(shù)組元素?cái)?shù):”))scanf(%d“,&n)a=(int*)malloc(sizeof(int)*N)printf(“輸入數(shù)組元素:”)(I=0I<ni){scanf(%d”,&A[I]))printf(“輸入循環(huán)移動(dòng)的位數(shù):”)scanf(%d“,&n)printf(“移位前組:”)(I=0I<ni){printf(%d”,a[I])}printf(“”“””)(I=0,j=n-1i<ji,j--){TMP=a[I]a[I]=a[j]a[j]=TMP}(I=0,j=n-1i<ji,j--){TMP=a[I]a[I]=a[j]=TMP}(I=n,j=n-1i<ji,J--){TMP=a[i]a[i]=a[J]a[J]=TMP}printf(“移位數(shù)組:”)for(i=0I<ni)){printf(%d”,a[i])}printf(“n”)free(a)}運(yùn)行屏幕截圖:
~]include<stdio。H>
#包括<conio。H>
#define n 10/*n是數(shù)組的最大可能值*/
int main(void)
{
]int a[n
]int temp
int i
for(i=0I< Ni)/*read in*/]{
scanf(%d”,&A[i
])temp=a[n-1]/*首先設(shè)置最后一項(xiàng)*/
for(i=n-2I>=0I--)/*put*/]{a[i1] =a[i
}]a[0]=temp/*將第一個(gè)值讀入*/
for(i=0I< Ni)
{
printf(%dt“,a[i])
}]getch()]}