Dream1018


私信TA

用户名:18924961396

访问量:2674

签 名:

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

  自我简介:

不负韶华


解题思路:


注意事项:


参考代码


首先提供两个代码


这是有漏洞的代码:

#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分

1 人评分

  评论区