将a数组中第一个元素移到数组末尾,其余数据依次往前平移一个位置。

将a数组中第一个元素移到数组末尾,其余数据依次往前平移一个位置。
【输入】
第一行为数组a的元素个数;

第二行为n个小于1000的正整数。

【输出】
平移后的数组元素,每个数用一个空格隔开。

【输入样例】
10
1 2 3 4 5 6 7 8 9 10
【输出样例】
2 3 4 5 6 7 8 9 10 1

#include <bits/stdc++.h>
using namespace std; //调用基本输入输出库
int main()
{
    int n;
    int a[100010];
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
    }
    for(int i=1;i<=n;i++)
    {
        cout<<a[i%n+1]
    }
    return 0;
}


#include<iostream>
using namespace std;

int main()
{
    int *a=new int;
    int n,m;
    cout<<"请输入数组元素个数:";
    cin>>n;
    cout<<"请依次输入小于1000的数组元素:\n";
    for(int i=0;i<n;i++){
        cin>>*(a+i);
    }    
    m=a[0];
    for(int i=0;i<n;i++){
        a[i]=a[i+1];
    }
    a[n-1]=m;    
    cout<<"平移之后的数组如下:";
    for(int i=0;i<n;i++){
        cout<<a[i]<<" ";
    }
    
    system("pause");
    return 0;
}

img

供参考:

#include<stdio.h>
#define N 10
int main()
{
    int n, a[N], i, t;
    scanf("%d", &n);
    if (n<1 || n > N) n = N;
    for (i = 0; i < n; i++)
        scanf("%d", &a[i]);
    t = a[0];
    for (i = 1; i < n; i++)
        a[i - 1] = a[i];
    a[i-1] = t;
    for (i = 0; i < n; i++)
        printf("%d ", a[i]);
    return 0;
}