解题思路:


注意事项:


参考代码


首先提供两个代码


这是有漏洞的代码:

#include <stdio.h>

#include <stdlib.h>

int main()

{

    int i=0,a[24]= {0};

    int m,j=0;

    for(i; i<9; i++)

    {

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

    }

    scanf("%d",&m);

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

    {

        if(a[i]<=m && m<=a[i+1])

        {

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

            j=1;

        }

        else

        {

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

        }

    }

    if(j==0)

        printf("%d\n",m);

}


这是正确的代码:


#include <stdio.h>

#include <stdlib.h>

int main()

{

    int i=0,a[24]= {0};

    int m,j=0;

    for(i; i<9; i++)

    {

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

    }

    scanf("%d",&m);

    if(m<=a[0])

    {

        printf("%d\n",m);

        j=1;

    }

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

    {

        if(a[i]<=m && m<=a[i+1])

        {

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

            j=1;

        }

        else


        {

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

        }

    }

    if(j==0)

        printf("%d\n",m);

}


容易发现,其实就是做了简单一些改动,把一种比较特殊的情况考虑进去了:当要插入的数比数组元素都要小时,

利用有漏洞的代码进行测试,发现能够通过,说明测试用例里边没有这种情况,希望官方能够对测试用例做出一定的修改。


点赞(0)
 

0.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论