【数组】把数组右循环移动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 }

 

posted @ 2019-12-10 08:59  main(void)  阅读(635)  评论(0编辑  收藏  举报
.c_ad_block { display: none !important; } #ad_t2{ display: none !important; }