本文主要是介绍(4)有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中
程序分析:该程序需要实现两个方面:一是需要找到插入的位置,而是需要将插入的位置空出来(插入位置之后数组的每个元素后移)。设置变量i遍历数组元素以找到插入位置,设置变量j移动数组中的元素。
知识点:
后移数组中的元素时需要从最后一个元素开始移动,不能从第一个元素开始移动,这样会覆盖元素本身的值。不能写成一下形式:
a[j+1] = a[j];
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main()
{int a[10];int i, j;int n;printf("Please enter a sorted array:\n");for (i = 0; i < 9; i++){scanf_s("%d", &a[i]);}printf("Please enter a number:\n");scanf_s("%d", &n);for (i = 0; i < 9; i++){if (n < a[i]){for (j = 9; j >i; j--){a[j] = a[j-1];}a[i] = n;break;}}if (i == 9){a[9] = n;}for (i = 0; i < 10; i++){printf("%d ", a[i]);}system("pause");return 0;
}
调试结果:
这篇关于(4)有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!