在有序数组中插入一个数字

题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。

123456789101112131415161718192021222324252627282930313233343536373839
#include <stdio.h>void Insert(int* arr, int input){    int i=0;    if (arr[8]>input) {        for (i=0; i<10; i++)        {            if (arr[i]>input)            {                int j;                for (j=9; j>i; j--)                {                    arr[j] = arr[j-1];                }                arr[i] = input;                break;            }        }    }    else    {        arr[9] = input;    }} int main(){    int arr[10] = {111,222,333,444,555,666,777,888,999};    int input;    printf("请输入要插入的数字:->");    scanf("%d",&input);    Insert(arr,input);    int i;    for (i=0; i<10; i++)    {        printf("%d ",arr[i]);    }    return 0;}

123456789101112131415161718192021222324252627282930313233343536373839
#include <stdio.h>#define ARR_LENGTH 10void Insert(int* arr, int input){    int i=0;    if (arr[ARR_LENGTH-2]>input) {        for (i=0; i<ARR_LENGTH; i++)        {            if (arr[i]>input)            {                int j;                for (j=ARR_LENGTH-1; j>i; j--)                {                    arr[j] = arr[j-1];                }                arr[i] = input;                break;            }        }    }    else    {        arr[ARR_LENGTH-1] = input;    }}int main(){    int arr[ARR_LENGTH] = {111,222,333,444,555,666,777,888,999};    int input;    printf("请输入要插入的数字:->");    scanf("%d",&input);    Insert(arr,input);    int i;    for (i=0; i<ARR_LENGTH; i++)    {        printf("%d ",arr[i]);    }    return 0;}
🔍 ×