pta c语言数组循环移动n位怎么做

img

    7-91数组12:循环移位(30分)
定义一个有10个元素的整型一维数组a,输入10个数存于该一维数组,将一维数组中元素向左循环移位n位,n由键盘输入,最后将移位完的10个元素输出
输入格式:
输入数据有两行,第一行输入10个整数,空格间隔,赋值给数组,第二行输入n(系统保证1<=n<=8)。
输出格式:
输出移位完的数组,元素之间用空格间隔
输入样例:
 样例输入
  12345678910
  3
   ①结尾无空行
输出样例:
 样例输出
  45678910123
   ①结尾无空行

按位置依次输出即可:

#include<stdio.h>
int main()
{
    int i,n,a[10];
    for(i=0;i<10;i++)
        scanf("%d",&a[i]);
    scanf("%d",&n);
    for(i=n;i<10;i++){
        printf("%d ",a[i]);
    }
    for(i=0;i<n;i++){
        printf("%d ",a[i]);
    }
    return 0;
}
/*1 2 3 4 5 6 7 8 9 10
3*/

img


#include<stdio.h>
#include<string.h>
void reverse(char a[],int start,int end){
    int temp;
    for(int i=start;i<(start+end+1)/2;i++){
        temp=a[i];
        a[i]=a[start+end-i];
        a[start+end-i]=temp;
    }
}

void move(char a[],int n){
    int length=strlen(a);
    reverse(a,0,n-1);
    reverse(a,n,length-1);
    reverse(a,0,length-1);
}
int main(){
    char a[10];
    int n=0;
    scanf("%s",a);
    scanf("%d",&n);
    move(a,n);
    printf("%s",a);
    return 0;
}