霍晨硕


私信TA

用户名:dotcpp0799097

访问量:19

签 名:

等  级
排  名 27952
经  验 545
参赛次数 5
文章发表 1
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路

1.找到新元素应该插入的位置。

2.从该位置开始,将数组中的元素向后移动一个位置,为新元素腾出空间。

3.将新元素插入到正确的位置


注意事项:
键盘第一次录入数组数据时for循环的次数不要搞错。

遍历数组以查找插入数据的位置时,if中记住要加上break。

原数组向后移位时,for循环中的i为8以从后往前进行移位。

参考代码:

#include<stdio.h>

int main()

{

    int a, b;//a是索引,b是插入的数据

    int arr[10] = { 0 };

    for (int i = 0; i < 9; i++)

    {

        scanf("%d", &arr[i]);

    }

    scanf("%d", &b);

    a = 9;

    for (int i = 0; i <9;i++)

    {

        if (arr[i] > b)

        {

            a = i;

            break;

        }

    }//到这步为止我们已经获得了要插入的数据以及数据要插入到数组哪个位置的索引

    for (int i = 8; i >= a; i--)//从后往前依次将数组里的数据往后偏移一位

        //i为8:8索引是数组的最后一位数据的位置

        //i>=a: 空出arr[a]的位置以插入数据

    {

        arr[i + 1] = arr[i];

    }

    arr[a] = b;//赋值

    for (int i = 0; i < 10; i++)

    {

        printf("%d\n", arr[i]);

    }

    return 0;

}


 

0.0分

0 人评分

  评论区

  • «
  • »