需要考虑输入数据边界点和临界点,也就是所谓的边界测试
具体代码如下:
#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。