需要考虑输入数据边界点和临界点,也就是所谓的边界测试
具体代码如下:
#include<stdio.h>
int main(void)
{
int score, mark;
printf("Please enter score:");
sancf("%d", &score);
mark = score < 0 || score>100 ? -1 : score / 10;
switch (mark)
{
case 10:
case 9:printf("%d--A\n", score);
break;
case 8:printf("%d--B\n", score);
break;
case 7:printf("%d--C\n", score);
break;
case 6:printf("%d--D\n", score);
break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:printf("%d--E\n", score);
break;
default:printf("Input error!\n");
}
return 0;
}
上面代码中如果不加mark那个判断的话,会导致结果不对,因为输入数据为101-109之间时,mark仍为10,执行打印A,输入的数据为-9~-1时,mark为,执行打印A。