教你夺冠


私信TA

用户名:835685327

访问量:148565

签 名:

相互交流 相互学习

等  级
排  名 13
经  验 21597
参赛次数 0
文章发表 84
年  龄 0
在职情况 学生
学  校 辣鸡施工大学
专  业

  自我简介:

努力刷题 熟能生巧!

参考代码如下:

#include <stdio.h>

int main()
{
    int array[10]; //定义一个可以存放10个元素的数组

    int i;
    for (i = 0; i < 9; i++)
        scanf("%d", &array[i]); //输入9个元素

    int num;
    scanf("%d", &num);

    for (i = 0; i < 9; i++)
    {
        if (num <= array[i]) //第一次满足条件的时候进来,这时找到num的位置
        {
            int j;
            
            /*
            //先把第i个数及其之后的元素向后移动一个单位
            for (j = i; j < 9; j++)
            {
                array[j + 1] = array[j];
            }
            */

            //上面这样是错误的!!会覆盖之前的值 数组插入要从后面的开始移动
            for (j = 8; j >= i; j--)
            {
                array[j + 1] = array[j];
            }
            //再把num放入此时的第i个元素中
            array[i] = num;
            break; //完成插入后记得跳出循环
        }
    }

    for (i = 0; i < 10; i++)
        printf("%d\n", array[i]);

    return 0;
}


 

0.0分

6 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答

代码解释器

  评论区

为什么交换位置那里要用j不用i
2024-02-22 17:59:38
  • «
  • 1
  • »