【数组】把数组右循环移动1位。
把数组右循环移动1位。
1 #include<stdio.h> 2 int main(void) 3 { 4 int a[]={1,2,3,4,5,6,7,8,9,10},tmp,i,n; 5 printf("Input n...\nn="); 6 scanf("%d",&n); 7 while(n-->=1)//用来控制要向右移动的位数 8 for(i=1;i<10;tmp=a[i-1],a[i-1]=a[i],a[i++]=tmp);//先把a[0]赋予tmp,再将a[1]赋值给a[0],
最后利用a[i++]=tmp把a[0]赋值于a[1].并进行累加进而进行下一步的位移。 9 for(i=0;i<10;printf("%d ",a[i++]));//把要执行的语句写在()内用,分隔,以;结尾,用for循环加printf("%d ",a[i++])遍历数组 10 printf("\n"); 11 return 0; 12 }
答案源自百度知道(附图)
向左移动
1 #include<stdio.h> 2 int main(void) 3 { 4 int a[]={1,2,3,4,5,6,7,8,9,10},tmp,i,n; 5 printf("Input n...\nn="); 6 scanf("%d",&n); 7 while(n-->=1) 8 for(i=9;i>=0;tmp=a[i],a[i]=a[i-1],a[i-1]=tmp,i--); 9 for(i=0;i<10;printf("%d ",a[i++])); 10 printf("\n"); 11 return 0; 12 }
本文来自博客园,作者:main(void),转载请注明原文链接:https://www.cnblogs.com/MR---Zhao/articles/12014630.html