有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入到数组中。
假设数组长度为10,数组中前9个数(这9个数要求从键盘上输入,输入时要满足自小到大的输入顺序)已经按从小到大进行排序。
然后再从键盘上输入一个整数,将此整数插入到前有序的9个数中,使得最终的10个数依然是从小到大有序的。
之前一直按照常规思维来思考,遍历数组,按照输入的数据情况与数组内容进行比较,在分情况进行处理
后来借鉴其他博友的经验,原来可以将输入的数直接赋给第十个数组,再将整个数组重新进行排序,可以很容易的解决掉
不得不感慨,还是要多练习多思考!!!
#include<stdio.h>
int main()
{
int a[10];
for(int i = 0; i < 9; i++)//输入9个数,从小到大
{
scanf("%d", &a[i]);
}
int n;
scanf("%d", &n);
a[9] = n;
int t;
for(int i = 1; i < 9; i++)
{
for(int j = 0; j < 10 - i; j++)
{
if(a[j] > a[j + 1])
{
t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
}
}
for(int i = 0; i < 10; i++)
{
printf("%d\n", a[i]);
}return 0;
}