0
点赞
收藏
分享

微信扫一扫

ACMNO.20 C语言-插入队列 已有一个已排好的9个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中。 输入 第一行,原始数列。 第二行,需要插入的数字。


题目描述

已有一个已排好的9个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中。

输入

第一行,原始数列。 第二行,需要插入的数字。

输出

排序后的数列

样例输入

1 7 8 17 23 24 59 62 101
50

样例输出

1
7
8
17
23
24
50
59
62
101

分类

C语言 

题目截图:

ACMNO.20  C语言-插入队列 已有一个已排好的9个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中。  输入  第一行,原始数列。 第二行,需要插入的数字。_C语言-插入队列


思路:

九个数,要创建一个长度为10的数组!
存储所有的数据!

先来一个循环进行查找,然后再替换!

for(i=0;i<z;i++)
{
}
然后,发现之后进行替换!比它小的就进行替换!
if(a[i]>b)
{
}
然后就开始,往后进行迁移!
for(int j=z-1;j>i;j--)
{
a[j]=a[j-1];
}

重点来啦!这个替换必须要最后再进行,要不然,就会出现重复的数据啦!
重点来啦!这个替换必须要最后再进行,要不然,就会出现重复的数据啦!
重点来啦!这个替换必须要最后再进行,要不然,就会出现重复的数据啦!
重点来啦!这个替换必须要最后再进行,要不然,就会出现重复的数据啦!
我在这里,就栽跟头啦!
a[i]=b;
然后结束循环!
break;


完整代码后面再给出来!

代码:

#include<iostream>
using namespace std;
#define z 10
int main()
{
int a[z]={0};int i,b;
for(i=0;i<z-1;i++)
{

cin>>a[i];
}
//cout<<"end!"<<endl;
cin>>b;

for(i=0;i<z;i++)
{
//cout<<" "<<a[i];
}//cout<<endl;
for(i=0;i<z;i++)
{
if(a[i]>b)
{

for(int j=z-1;j>i;j--)
{
a[j]=a[j-1];
}
a[i]=b;
break;
}
//cout<<i<<endl;
}
//cout<<endl;
for(i=0;i<z;i++)
{
cout<<a[i]<<endl;
}
}

代码截图:

ACMNO.20  C语言-插入队列 已有一个已排好的9个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中。  输入  第一行,原始数列。 第二行,需要插入的数字。_C语言-插入队列_02


运行结果:

ACMNO.20  C语言-插入队列 已有一个已排好的9个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中。  输入  第一行,原始数列。 第二行,需要插入的数字。_C语言-插入队列_03


OJ结果:

ACMNO.20  C语言-插入队列 已有一个已排好的9个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中。  输入  第一行,原始数列。 第二行,需要插入的数字。_C语言-插入队列_04


举报

相关推荐

将一个数插入已经排好序的数组中

0 条评论