数组循环左移m位的算法 C语言,数组循环右移?
C语言,数组循环右移?
事实上,用一个变量保存第一个元素(如[0]),然后将后一个元素的值赋给前一个元素,最后将保存[0]的变量的值赋给最后一个元素非常简单。对于数组,应该使用双循环。外循环表示需要向左移动的次数,内循环表示将每个元素向左移动
程序如下:#include<stdio。H>#包括<stdlib。H> main(){int*a,N,N,I,J,TMP printf(“输入数组元素数:”))scanf(%d“,&n)a=(int*)malloc(sizeof(int)*N)printf(“输入数组元素:”)(I=0I<ni){scanf(%d”,&A[I]))printf(“输入循环移动的位数:”)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(“移位数组:”)for(i=0I<ni)){printf(%d”,a[i])}printf(“n”)free(a)}运行屏幕截图:
~]include<stdio。H>
#包括<conio。H>
#define n 10/*n是数组的最大可能值*/
int main(void)
{
]int a[n
]int temp
int i
for(i=0I< Ni)/*read in*/]{
scanf(%d”,&A[i
])temp=a[n-1]/*首先设置最后一项*/
for(i=n-2I>=0I--)/*put*/]{a[i1] =a[i
}]a[0]=temp/*将第一个值读入*/
for(i=0I< Ni)
{
printf(%dt“,a[i])
}]getch()]}
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。