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

版权声明:转载请声明原文链接地址,谢谢! https://blog.csdn.net/weixin_42859280/article/details/84996712

题目描述

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

输入

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

输出

排序后的数列

样例输入

1 7 8 17 23 24 59 62 101
50

样例输出

1
7
8
17
23
24
50
59
62
101

来源/分类

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

代码截图:
在这里插入图片描述
运行结果:
在这里插入图片描述
OJ结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42859280/article/details/84996712