将一个数组的最后一位放到第一位 并依次循环输出 应该如何实现

比如一个数组为1 2 3 4 5 6 7 8 9 10
输出结果为

img


应该如何实现 求解


#include <stdio.h>

int main()
{
  int nums[] = {1,2,3,4,5,6,7,8,9,10};
    for(int i=0;i<10;i++)
    {
        printf("%d ",nums[i]);
    }
    printf("\n");
    int index;
    for(int i=0;i<10;i++)
    {
        index = 10 - i -1;
        for(int j=0;j<10;j++)
        {
            printf("%d ",nums[index++]);
            if(index >=10)
            {
                index = 0;
            }
        }
        printf("\n");
    }
   return 0;
}

img

写一个函数把最后一个放到第一

img

#include <stdio.h>
void re(int t[],int n)
{
    int tem=t[n-1];
    for(int j=n-1;j>=1;j--)
    {
        t[j]=t[j-1];
    }
    t[0]=tem;
}
void prin(int t[],int n)
{
    for(int j=0;j<n;j++)
    {
        printf("%d ",t[j]);
    }
    printf("\n");
}
int main()
{
    int n=10;
    int t[10] ={1,2,3,4,5,6,7,8,9,10};
    for(int j=0;j<n;j++)
    {
        re(t,n);
        prin(t,n);
    }
    return 0;
}

#include<stdio.h>
int main(void)
{
    int a[10],i,temp,n=10;
    for(i=0;i<10;i++)
    scanf("%d",&a[i]);
    while(n--)
    {
        temp=a[9];
        for(i=9;i>0;i--)
        a[i]=a[i-1];
        a[0]=temp;
        for(i=0;i<10;i++)
        if(i<9)
        printf("%d ",a[i]);
        else
        printf("%d\n",a[i]);
    }
}