版权声明:转载请声明原文链接地址,谢谢! 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结果: