很多学习语言编程的道友在写程序都有这样一个感受:程序写完后,点击运行,却不是预期的结果。然后就困恼到底是哪里出错?今天我就这个问题,给道友们一些建议:
1、避免写代码马虎,发生低级错误
比如说本来是if(a==b),但是写的快,却写成了if(a=b);
本来是printf("%d",a)却少了%,scanf("%d",&a);却少了&等等问题。这些问题单独拿出来看,大家都说知道,但是当我们的程序很复杂的时候,我们就忽略了这些细节问题。有时候真的是这些细节会让你崩溃!!!
2、逻辑问题
这个问题也很常见,因为有的道友从头到尾看了一遍程序,没有语法问题,逻辑也清晰,感觉程序就应该是这样的,为什么还会错呢?主要分为以下情况:
(1)你认为的”正确的逻辑思路“根本不能解决问题
例如:用天平称重的问题,有的道友只知道一直两两分,然后得到答案,但实际上,这种思路得不到答案的!
(2)逻辑不具备普遍性
看起来你的逻辑适合大部分的数据,但是却没有考虑到特殊的情况,
举个最简单的例子:
输入任意数,求这个数各位数字之和,并用拼音表示出来,比如和为123,输出 yi er san;
看到这道题,有的道友立马想到用while循环来截取和的每一位,代码如下:
while(sum!=0) {
b[k++]=sum%10; //数组b存储各位数字
sum=sum/10;
}
然后提交就WA,因为他们没有考虑到while循环的条件,是当数不为0时才执行!而对于特殊的数字0,它各位数字和为0,按照这个程序逻辑就无法得出结果,所以需要单独考虑,改为:
if(sum==0)
cout<<a[0]<<endl;
else {
while(sum!=0) {
b[k++]=sum%10;
sum=sum/10;
}
}
3、输入输出格式不对
这个问题很容易被忽略,而且也不容易发现。
比如:输出数据多了一个空格,或者多了一个空行,或者引号的格式不对之类的问题。
那么对于这种情况,需要道友们细心!
为了便于道友们向我咨询问题,特意开设了一个免费的知识星球——CaptianXue,星球提供学习、理财、生活、职场等各类文章和免费答疑!!