#最近做了一些PTA上面的题,发现只要有一点点错误就不行,果真还是人类讲人情啊。所以下面整理一下。
1、最常犯的错误:格式错误。
在PTA程序检测中,输入输出要严格按照题目要求。输出的格式要完全按照题目要求来,该空格地方空格,该换行要换行。否则,就算你运行结果是对的,PTA还是提示你格式错误
格式错误1:输出没有完全按照题目要求输出。
#include<stdio.h>
int main(){
int fahr=150;
int celsius;
celsius=(5*(fahr-32)/9);
printf("fahr=150, celsius = %d",celsius);
}
虽然我们用devc++或者其他软件可以运行出来,但是提交却会提示我们“格式错误 ”
代码并没有错误,但是运行结果却是格式错误,错误在于你的printf语句没有按照题目的输出格式来输出。fahr = 100这里的100和=应该要有一个空格隔开。
避免犯格式错误,最好办法就是把题目的输出复制到代码中。
格式错误2:输出的头尾多了空格或者换行符
如果输出内容有多行时候,通过循环结构实现输出很容易会多一个换行符。比如
for(i=1;i<=5;i++) printf("hello\n");
上面代码运行没任何问题,输出了5行hello,但是最后一个hello还会多了一个\n,就是会换行。 但是多的这个换行符就会和题目要求输出不匹配,一般PTA题目输出多行内容,最后一行都没有换行符,所以这段代码提交还是会犯格式错误问题。怎么解决呢?
•1.最后一项单独判断
for(i=1;i<=5;i++)
{
if(i==5) printf("hello");
else printf("hello\n");
}
2.答案错误或部分正确
你的程序输出结果错误。每个PTA程序都会设置几组测试数据,如果你的得分没有满分,那就是有些测试数据结果错误,导致没法满分。说明你的程序考虑不够完善,有些临界条件或者功能没实现,导致部分正确。所以你必须继续调试程序,找出不完善地方。
3.运行超时
•未在规定时间运行结束,可能你的程序死循环。
•循环次数过多,超过时间限制。本该单层循环结束,却用双层循环解决,也会这样问题。
4.编译错误
这种错误一般是程序中有语法错误,比如少了分号之类。