描述:
向已排序的数组中插入一个数,C语言向数组插入一个数保持原来的排序
思路
第一步:找到50应该放的位置。
第二步:将该位置后面的元素均向后移动一位。
第三步:50放入它该待的位置。
代码实现:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int arr[11] = { 1,3,4,6,7,9,12,34,56,78 };
int m,index;
printf("请输入一个整数:\n");
scanf("%d", &m);
if (m < arr[0]) {
index = 0;//健壮性
}
else if (m > arr[9]) {
index = 10;//健壮性
}
else {
for (int i = 0; i < 10; i++) {
if (m >= arr[i] && m <= arr[i + 1]) {
index = i + 1;
break;//找到位置立即跳出循环
}
}
}
//给新元素腾地方
for (int i = 9; i >= index; i--) {
arr[i + 1] = arr[i];
}
arr[index] = m;
//输出改变后的数组序列
for (int i = 0; i <= 10; i++) {
printf("%d ", arr[i]);
}
return 0;
}