解题思路:
注意事项:
参考代码
首先提供两个代码
这是有漏洞的代码:
#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 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复