插入x,y俩个数后总的4个数储存在了数组中,但每次输出只有2个



#include<stdio.h>
int main()
{
    int flag = 0;
    int x, y, i, j, n;
    int a[100] = {0};
   
    
    scanf("%d", &n);
    for(i=0; i<n; i++)
    {
        scanf("%d", &a[i]);
    }
    scanf("%d %d", &x, &y);

//将x y 有序插入到数组a中
/***********Begin***********/
   while(flag != 2)
   {
       for(int j=0;j<n;j++)
        {   
            if(x > a[n-1])
            {
                a[n] = x;
            }
            if(x == a[j]) 
            {
                break;
            }

            if(x < a[j])      
            {   
                for (int k = n;k > j; k--)
                {
                    a[k+1] = a[k];
                }
                a[j] = x;
                break;             
            }
        }
        flag++;
        if(flag == 1)
        {
            x = y;
        }
   }
/************End************/ 
    for(i=0; i<n; i++)
    {
        printf("%d ", a[i]);
    }
    return 0;
}

【以下回答由 GPT 生成】

# 输入数组长度
n = int(input())

# 输入已排序的数组
a = []
for i in range(n):
    a.append(int(input()))

# 输入两个需要插入的数
x, y = input().split()
x = int(x)
y = int(y)

# 将x和y有序插入到数组a中
def insert_sorted(a, x, y):
    # 先插入x
    for i in range(len(a)):
        if x <= a[i]:
            a.insert(i, x)
            break
    else:  # 如果x比数组中所有元素都大,则插入到数组末尾
        a.append(x)

    # 再插入y
    for i in range(len(a)):
        if y <= a[i]:
            a.insert(i, y)
            break
    else:  # 如果y比数组中所有元素都大,则插入到数组末尾
        a.append(y)

    return a

a = insert_sorted(a, x, y)

# 输出排序后的数组
for elem in a:
    print(elem, end=" ")


【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^