用数组插入排序,将输入的整数插入已知的数列中

img

img

本人写的程序,应该少了一种x=a[i]的情况不知道怎么改,想看看各位能不能帮我改一下谢谢啦

img


在x>a[i]这里改成x>=a[i]&&x<=a[i+1]

#include<stdio.h>

int main()
{
    int n;
    scanf("%d",&n);
    int t[n];
    for(int i=0; i<n; i++)
        scanf("%d",&t[i]);
    int x,flag=1;
    scanf("%d",&x);
    for(int i=0; i<n; i++)
    {
        if(x<=t[i]&&flag==1)
        {
            printf("%d ",x);
            flag=0;
        }
        printf("%d ",t[i]);
    }
    return 0;
}

供参考:

//升序序列
#include<stdio.h>
#define N 100
int main()
{
    int n, m, i, a[N];
    scanf("%d", &n);        //n:有序数列的个数
    for (i = 0; i < n; i++) // 输入n个有序数列元素
        scanf("%d", &a[i]);
    scanf("%d", &m);       //m:待插入的数
    if (m > a[n - 1]) {    //插入操作
        a[n] = m;
    }
    else {
        for (i = n; m < a[i - 1] && i > 0; i--) {
            a[i] = a[i - 1];
        }
        a[i] = m;
    }
    for (i = 0; i < n + 1; i++)//输出 插入数后的有序数列
        printf("%4d", a[i]);
    printf("\n");
    return 0;
}