1、如果某个数出现超过一次的话,会发生什么?
答:就位图排序而言,set()函数把标识数值的相应位设为1,当再次出现相同值是,由于其相应位已经有1标识,其结果不会发生变化,所以相关与过滤掉了多余的相同值。
2、在这种情况下如何修改程序来调用错误处理函数?
答:就位图排序来说,在我们或得某一值时,我们可以先对其进行判断,看其是否存在,如果存在,那么我们可以设定相应的错误处理函数,给予适当的处理,具体处理情况应依需求而定。
3、当输入的整数小于或大于等于n时,又会发生什么?
答:就位图程序来说,我们依照输入的数作为数租的索引,当我们输入数小于0或者大于n时,数组越界!
4、如果某个输入不是数值又如何?程序该如何处理?
答:如果输入的非数值,如果需求是处理数值,那么任何的非数值值都是非法的,所以,在进行判断之后,进行错误处理(忽略掉非数值或退出输入等)。
5、程序还应该包括哪些明智的检查?
答:还应检查输入值的个数是否超出了数组能容纳的个数(如果使用了数组的话),输入值的规则(是否一次多值?)等!
就输入规则举例:
1
2 3 4 5 6 |
//.... while ( (scanf( "%d", &a[n])) != EOF) { n++; } //.... |
别看这句简单,输入的时候,怎样个输入规则?这里有几点需注意:
(1)输出字符,回车,陷入死循环n++;
(2)在同一行,先输入数字,在输入字符、回车,有闲人死循环!
(3)正确输入法:数字(可以多个,空格分开)——>回车——>Ctrl + Z,或者直接Ctrl+Z(在没有输入任何字符情况下);
先说到这儿,其他情况以后再探!