运行超时改怎么改进。

将a数组中的第一个元素移到数组末尾,其余数据依次往前平移一个位置。(输入说明:输入数据不超过10)

img

供参考:

#include <stdio.h>
int main()
{
    int a[10]={0},i,t,n=0;
    while(scanf("%d",&a[n])==1 && ++n < 10);//ctrl+z 结束输入
    for(i=1,t=a[0];i<n;i++)
        a[i-1] = a[i];
    a[i-1] = t;
    printf("Result:\n");
    for(i=0;i<n;i++)
        printf("%d ",a[i]);
    return 0;
}

这样不移动的话可能更省时间


#include<iostream>
using namespace std;
int main()
{
    int a[10],t=0,n=1;
    for (int i = 0; i < 10; i++)
    {
        if (i == 0)
            cin >> t;
        else
        {
            cin >> a[i-1];
            n++;
        }    
        if (getchar() == '\n')
        {
            a[i] = t;
            break;
        }
    }
    for (int i = 0; i < n;i++)
        cout << a[i];
}