#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;
}

插入x,y俩个数后总的4个数储存在了数组中,但每次输出只有2个
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注
【以下回答由 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=" ")
【相关推荐】
- 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7459726
- 你也可以参考下这篇文章:平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。 对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积。
- 除此之外, 这篇博客: 40道C语言大学经典例题及代码(免费 全)中的 2.分段函数计算,输入一个x值,计算并输出y值。 部分也许能够解决你的问题。
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报