解题思路:
注意事项:
参考代码
首先提供两个代码
这是有漏洞的代码:
#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 人评分
2006年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:468 |
C语言程序设计教程(第三版)课后习题9.8 (Java代码)浏览:1638 |
淘淘的名单 (C语言代码)答案错误???浏览:594 |
C语言程序设计教程(第三版)课后习题6.2 (C语言代码)浏览:1420 |
A+B for Input-Output Practice (II) (C语言代码)浏览:997 |
【排队买票】 (C语言代码)浏览:899 |
WU-字符串比较 (C++代码)浏览:756 |
【绝对值排序】 (C语言代码)浏览:820 |
printf基础练习2 (C语言代码)浏览:746 |
简单的a+b (C语言代码)浏览:544 |