c语言学习教程课程设计遇到bug怎么解决

admin C语言 4


做 C 语言课程设计的时候,是不是经常遇到代码报错?编译的时候红一片,运行起来结果乱七八糟,改来改去还不对,急得想把键盘砸了?其实啊,写代码遇到 bug 太正常了,哪怕是老手也天天跟 bug 打交道。今天兔子哥就给你讲讲,课程设计里遇到 bug 该咋解决,都是实实在在的法子,一起往下看吧!

先别急着改,搞清楚 bug 在哪儿


很多人看到报错就慌了,上来就瞎改,结果越改越乱。其实第一步该是找到 bug 在哪儿。
编译器报错信息要细看,虽然是英文的,但关键信息就那几个词。比如看到 “syntax error”,就是语法错了,多半是少了分号、括号不配对;看到 “undefined reference”,就是用了没定义的变量或函数,可能是名字拼错了。
举个例子,之前有个同学写循环,把 “for (i=0;i<10;i++)” 写成 “for (i=0;i<10,i++)”,逗号写成顿号了,编译器提示 “syntax error before ‘,’ token”,指着那个逗号,一看就知道错哪了。
要是没报错但结果不对,就用 “打印大法”。在关键步骤加 printf,把变量的值打出来,看看是不是跟预想的一样。比如算平均数的时候结果不对,就在求和后打印一下总和,看看是不是加错了,一步一步找,总能找到哪里出问题。

最常见的那些 bug,记住了能省不少事


课程设计里的 bug,翻来覆去就那么几种,记牢了下次遇到就不怕了。
分号和括号:这是新手最容易错的。比如 if 语句后面忘了加分号,或者大括号只写了开头没写结尾。有个简单办法,写完一行就检查一下,大括号一对一对写,比如先写 “{}”,再在中间填内容,就不容易漏。
数组越界:定义了 int a [5],却用到了 a [5] 甚至 a [10],编译可能不报错,但运行起来结果肯定乱,甚至会崩溃。记住数组下标是从 0 开始的,5 个元素就是 0 到 4,别超了。
变量没初始化:定义了 int sum; 就直接用 sum += a [i],sum 一开始可能是个随机数,算出来肯定不对。养成习惯,定义变量的时候就赋初值,比如 int sum=0;
循环条件错了:比如想循环 5 次,写成 for (i=1;i<=5;i++) 是对的,写成 i<5 就只循环 4 次,结果就少了一次。这种情况用打印大法,把 i 的值打出来,一看就明白了。

自己搞不定的时候,该找谁帮忙?


有时候自己盯半天也看不出问题,这时候别硬扛,找人问问更快。
同班同学是首选,大家做的题目差不多,可能他也遇到过类似的 bug,互相看看代码,说不定一眼就发现你哪错了。记得问的时候把代码片段给人家看,光说 “我这不对” 别人也没法帮你。
老师和助教更专业,他们见的 bug 多了,往往看一眼就知道问题在哪。不过问之前最好自己先排查一下,把你试过的方法告诉老师,显得你不是没动脑筋。
网上的论坛也能求助,比如 CSDN、Stack Overflow,把报错信息和相关代码贴上去,会有人给你出主意。但要注意,别直接把整个代码都发上去问 “为啥不对”,没人愿意看一大段代码,挑关键部分就行。

改 bug 的小技巧,试过的都说好


改 bug 也是有技巧的,瞎改不如不改。
注释法:如果不确定哪段代码有问题,就把怀疑的部分用 /* */ 注释掉,看看程序能不能运行到后面。能运行,说明 bug 就在注释掉的部分;不能运行,就往前面找。
版本保存:改代码之前,先把当前版本保存一下,比如复制一份改名 “代码_备份 1.c”。万一改乱了,还能回到之前的状态,不至于从头再来。
慢慢来:一次只改一个地方,改完运行看看效果。别同时改好几个地方,要是好了都不知道是哪个改动起的作用,要是还不对,更不知道哪错了。
兔子哥觉得,改 bug 其实是个涨经验的过程,每解决一个 bug,你对 C 语言的理解就深一分。课程设计里的 bug 都不难,别被它们吓住,按步骤找,耐心改,肯定能解决。实在不行就歇会儿,换换脑子再看,说不定一下子就看出来了。希望这些法子能帮到你,改 bug 顺利哈!

标签: 乱七八糟 翻来覆去

发布评论 0条评论)

  • Refresh code

还木有评论哦,快来抢沙发吧~