第10周O题,插入整数排序问题

题目如下:

有一个有序数字序列,从小到大排序,将一个新输入的数插入到序列中,保证插入新数后,序列仍然是升序。

输入描述:

第一行输入一个整数N(0≤N≤50)。

第二行输入N个升序排列的整数,输入用空格分隔的N个整数。

第三行输入想要进行插入的一个整数。

输出描述:

输出为一行,N+1个有序排列的整数。

解决该问题,总共n个数,如果插入了一个数,那么这个数组的长度就成n+1,所以我们定义时以n+1个元素定义,输入n个元素,我让新加进来的数赋成数组中的元素,即a[n] = m;之后用sort函数进行排序,代码如下:

但请注意,最后输出的时候是n+1个元素

#include <iostream>

#include<bits/stdc++.h>

using namespace std;

int main()

{

int n;

cin >> n;

int *a = new int[n+1];

for(int i = 0;i < n;i++)

{

cin >> a[i];

}

int m;

cin >> m;

a[n] = m;

sort(a,a+n+1);

for(int i = 0;i < n+1;i++)

{

cout << a[i] << " ";

}

return 0;

}

全部评论

相关推荐

想去夏威夷的小哥哥在度假:5和6才是重点
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务