数组-数组排序

39 阅读1分钟

描述:

向已排序的数组中插入一个数,C语言向数组插入一个数保持原来的排序

思路

第一步:找到50应该放的位置。

image.png

image.png 第二步:将该位置后面的元素均向后移动一位。

image.png 第三步: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;
}