C语言新手小白必看(上) -- PTA常见错误与解决方法

新手小白在做PTA上的题目时,提交以后常常出现有下面4种状态

"答案正确"说明你的代码通过了全部的测试点。下面就另外三种错误展开说一下:

(一)部分错误:说明你的代码只通过了一部分测试点。另一部分测试点没有通过。没有通过的原因通常有两种:(1)格式错误,(2)答案错误,如下图所示:

(1)格式错误:说明你没有按照题目给出的输出样例的格式进行输出。最常见的情况就是:输出样例中有空格的地方你的pringf语句中没有,或者输出样例里没空格的地方你在printf语句中多敲了空格。一定要严格按照题目的输出样例的格式,来写你的printf语句中双引号里面那些东西。输出样例中的固定文字,你就copy;输出样例中的变量,你就用对应的格式转换说明符占位,然后再后面的参数中,写上对应的变量就行。例如:

输出样例:cost = 55.00,这个55.00是你算出来的浮点数变量a的值,并且要求保留2位小数。

这时你的printf语句就应该写成 printf("cost = %.2f", a),特别注意,输出样例的等号两边有空格,你的printf语句中也要有。

至于浮点出保留几位小数,用%.n来可控制输出,要保留几位小数,把n换成几就行了。

(2)答案错误:说明你的计算本身错了,这个时候就找自己代码中的逻辑错误了。推荐你可以找一个正确的代码,比较以下别人的代码和你的代码的逻辑有哪些不同。当然这种错误是比较难找的,需要有有点耐心。

(二) 段错误:这种错误通常是和内存有关系的,比如输出时,变量前面没加地址符号,如scanf("%d", N);再有就是数组越界,也可能会出现段错误。

(三)编译错误:这也是新手最常见的错误,其实就是你的语法没写对,编译器编译不了。这种错误,教大家一个办法。看下图:

当出现编译错误时,下面一定会有提示。只要在错误提示中找到error,不用管warning。error前面的数字说明该错误是你的代码的第几行第几个字符出现的,^~~~~直接就给你标记出了错误开始的地方,重点看这个地方。例如图中代码第6行,本意是计算0.54*N的值,但是把*省略了。这种省略在数学上有这种写法,但是在C语言中没有。写成这样编译器不认识,所以就编译错误了。

还有很多的编译错误,比如语句末尾分号没有敲,英文符号敲成中文的了,小括号,花括号少敲另一个等等,都可以很快的通过这个方法找出来。

后面还会有一篇《C语言新手小白必看(下)》,我们会总结更多的新手写C语言源代码是容易出现的错误。

猜你喜欢

转载自blog.csdn.net/morn_l/article/details/133870189