zoukankan      html  css  js  c++  java
  • PTA常见错误

    1.最常犯的错误:格式错误。

    在PTA程序检测中,输入输出要严格按照题目要求。输出的格式要完全按照题目要求来,该空格地方空格,该换行要换行。否则,就算你运行结果是对的,PTA还是提示你格式错误

    格式错误1:输出没有完全按照题目要求输出。

    7-1 计算摄氏温度
    本题要求编写程序,计算华氏温度100°F对应的摄氏温度。计算公式:C=5×(F−32)/9,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型。
    要求:按照下列格式输出
    fahr = 100, celsius = 计算所得摄氏温度的整数值
    
    

    你输入的代码如下

    #include <stdio.h>
    int main()
    {
      int fahr,celsius;
      fahr=100;
      celsius=5*(fahr-32)/9;
      printf("fahr =100, celsius = %d",celsius);
      return 0;
    }
    

    代码并没有错误,但是运行结果却是格式错误,错误在于你的printf语句没有按照题目的输出格式来输出。fahr = 100这里的100=应该要有一个空格隔开。
    避免犯格式错误,最好办法就是把题目的输出复制到代码中

    格式错误2:输出的头尾多了空格或者换行符

    如果输出内容有多行时候,通过循环结构实现输出很容易会多一个换行符。比如

      for(i=1;i<=5;i++)   printf("hello
    "); 
    

    上面代码运行没任何问题,输出了5行hello,但是最后一个hello还会多了一个 ,就是会换行。 但是多的这个换行符就会和题目要求输出不匹配,一般PTA题目输出多行内容,最后一行都没有换行符,所以这段代码提交还是会犯格式错误问题。怎么解决呢?

    • 1.最后一项单独判断
      for(i=1;i<=5;i++)
        {
           if(i==5) printf("hello");
           else printf("hello
    "); 
        }
    
    • 2.最后一项不好确定,引入flag
    int flag=1; 
    for(i=1;i<=5;i++)
        {
           if(flag)  {printf("hello");flag=0;}
           else printf("
    hello"); 
        }
    

    上述代码输出的5行hello,就可以去掉尾部换行符。还有尾部多空格符,一样处理。你也可以根据题目具体输出要求修改你的程序。

    2.答案错误或部分正确

    你的程序输出结果错误。每个PTA程序都会设置几组测试数据,如果你的得分没有满分,那就是有些测试数据结果错误,导致没法满分。说明你的程序考虑不够完善,有些临界条件或者功能没实现,导致部分正确。所以你必须继续调试程序,找出不完善地方。

    3.运行超时

    • 未在规定时间运行结束,可能你的程序死循环。
    • 循环次数过多,超过时间限制。本该单层循环结束,却用双层循环解决,也会这样问题。

    4.段错误

    • 这个错误一般在程序使用数组这种结构才会出现错误,如果定义数组长度太小,没有达到题目要求最大值的情况。
      比如这个题目:

      这里有提到字符串长度不超过10000,这个时候你定义数组就要超过这个值,否则引起段错误或答案错误。比如你可以定义char str[10010];

    • scanf没有加&

    • 野指针。指针没有指向。如

    int *p; 
    printf("%d", *p1);
    

    5.编译错误

    这种错误一般是程序中有语法错误,比如少了分号之类。

    常见错误总结如下图所示:

  • 相关阅读:
    HTML常用标签1
    mysql 多对多拆分成 一对多(学生,选修课,成绩)
    JDBC工具包使用
    类反射,用于JDBC
    JDBC基础语句使用
    关于线程等待、线程唤醒方法的引入
    synchronized站点抢票同步例题
    python-装饰器
    jwt, token, session和cookies
    miniapp之登录、授权和支付
  • 原文地址:https://www.cnblogs.com/linli069/p/7611378.html
Copyright © 2011-2022 走看看