描述
已有一个已排好的9个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中。
输入
第一行,原始数列。第二行,需要插入的数字。
输出
排序后的数列
代码
#include<iostream>
using namespace std;
int main()
{
int array[10];
for (int i = 0; i < 9; i++)//依次输入所有数
{
cin >> array[i];
}
int num;
cin >> num;
if (array[0] < array[8]) //如果输入的数是正序
{
for (int i = 0; i < 9; i++)
{
if (num < array[i]) //依次去判断要插入的数和输入那些数字之间的大小
{
for (int j = 9; j > i; j--)//再引入一个变量用来给插入数字后的一共有10个数字的数组编号赋值
{
array[j] = array[j - 1];//原来从a0到a8,现在用到了a9,插入一个数后,这个数之后的数统统往后挪了一位(a9变为了原a8,a8变成了原a7...)
}
array[i] = num;
break;
}
else if (i == 8)
{
array[9] = num;
}
}
}
else
{
for (int i = 0; i < 9; i++)
{
if (num > array[i])//以下思路和正序一模一样,只是判断了是逆序的话插入前的比较要大于着比
{
for (int j = 9; j > i; j--)
{
array[j] = array[j - 1];
}
array[i] = num;
break;
}
else if (i == 8)
{
array[9] = num;
}
}
}
for (int i = 0; i <10; i++)//依次输出所有数
{
cout << array[i] << endl;
}
return 0;
}