c语言 将一个给定的整数插到原本有序的整数序列中,使结果序列仍然有序。

img

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

这是我的代码,总有一个测试点不过,就是不知道错在哪。。

img

如果是这个样例就过不了了,14到23行不用放for循环里
3
1 2 3
2