当前位置: 首页 > news >正文

代码错误与检查简短教程(新手适用)

持续更新中……

预计阅读时间:10分钟

        编程大神大概率是不会犯这类错误的,新手可以看看。

        之前踩过很多坑,今天我把它们总结起来,希望大家以后可以避开。

一、总结经常出现的几类错误

1.书写错误

例如:

inr s=101;
#include <iostrean>
retunr 0;

        这三个是我经常犯的,比如把int写成inr,把iostream写成iostrean,把return写成retunr等等,这类错误是很容易发现的,在编写代码的时候应该就能够发现。

2.忘记加分号

例如:

struct student{
    string name;
    int score;
}

        发现错误了吗?是不是{}的后面没有分号。

3.循环变量搞错

例如:

for(int i=0; i<n; i++)
{
    for(int j=0; j<m; i++)
    {
        a[i][j]=0;
    }
}

        发现错误了吗?这类错误是很隐蔽的,大家看第3行的循环条件,j=0; j<m;i++,有没有发现,是i++而不是j++,这也是新手们常犯的很难找到问题所在的错误。

4.数组越界

例如:

//题目要求:输入一个数组(0≤数组大小≤1000),找出其中的最大值。
int a[505];
int n;
cin>>n;
for(int i=0; i<=n; i++)
{
    cin>>a[i];
}
……

        这是一个小例子,对于题目要求的边界条件一定要仔仔细细的看,避免出现边界条件这类错误。

5.数据类型错误

//题目要求:输入一个长整数
int a[1001];

        这类错误是很容易犯的,千万避免。


关于这些错误,我们应该如何避免呢?


二、错误的避免

绝招1 --- 打印

void dfs(int x,int y)
{
    ans++;
    g[x][y]=false;
    cout<<"x="<<x<<" y="<<y<<endl;
    if(g[x-1][y])   dfs(x-1,y);
    if(g[x+1][y])   dfs(x+1,y);
    if(g[x][y-1])   dfs(x,y-1);
    if(g[x][y+1])   dfs(x,y+1); 
} 

        在编写递归调用这类经常会出错的代码时,我们不妨把当前信息输出出来,最好还能够标记上是在递归第几层输出的。

绝招2 --- 调试

        调试是一个很难的过程。

        以MacOS系统的CodeRunner编辑器为样例给大家解释一下。

点击run按钮并点击run and debug按钮。

 调试界面就出现了。

 下面我们按下这个按钮

 就可以进入按步骤运行啦!

 系统会显示当前代码执行到了哪里,以及现在的任何定义的变量的相关数据。

        大部分代码编译器都会配备有该系统。


以上就是本文的全部内容啦!千万不要认为本文很弱智、无用之类的,这种错误新手们是很容易犯的。

相关文章:

  • Java Design Patterns 之API 网关模式
  • vue框架的基础语法之方法和事件的绑定,样式绑定,循环渲染,条件渲染
  • 项目第一天
  • go get 拉取报错The project you were looking for could not be found的解决方法
  • 算法题练习——NC15 求二叉树的层序遍历、NC88 寻找第K大
  • java基于springboot+vue的汉服推广与交流平台
  • 6面向对象中的继承
  • 【非正式协议 Objective-C语言】
  • Java面试题09-ThreadLocal的底层原理
  • Golang依赖管理(GOPATH->vendor->Go Module)
  • java计算机毕业设计网上报名及成绩查询系统源码+数据库+系统+lw文档+mybatis+运行部署
  • 机器学习泛化误差
  • 常见的几种填充方式:ZeroPad2d/ReflectionPad2d...(Pytorch)
  • 设备间同步的电子书阅读器--查找未果
  • java计算机毕业设计网络游戏管理网站源码+数据库+系统+lw文档+mybatis+运行部署
  • 时间复杂度分析经典问题——最大子序列和
  • [译]前端离线指南(上)
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • CentOS7简单部署NFS
  • ECS应用管理最佳实践
  • Gradle 5.0 正式版发布
  • Java面向对象及其三大特征
  • October CMS - 快速入门 9 Images And Galleries
  • React+TypeScript入门
  • spark本地环境的搭建到运行第一个spark程序
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 微服务核心架构梳理
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • #define,static,const,三种常量的区别
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (a /b)*c的值
  • (附源码)php投票系统 毕业设计 121500
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (转)Oracle存储过程编写经验和优化措施
  • ***利用Ms05002溢出找“肉鸡
  • /*在DataTable中更新、删除数据*/
  • /etc/sudoer文件配置简析
  • [3300万人的聊天室] 作为产品的上游公司该如何?
  • [⑧ADRV902x]: Digital Pre-Distortion (DPD)学习笔记
  • [android] 手机卫士黑名单功能(ListView优化)
  • [AutoSar]BSW_OS 01 priority ceiling protocol(PCP)
  • [bug总结]: Feign调用GET请求找不到请求体实体类
  • [C# WPF] 如何给控件添加边框(Border)?
  • [c语言]小课堂 day2
  • [Geek Challenge 2023] web题解
  • [hdu 4405] Aeroplane chess [概率DP 期望]
  • [Java、Android面试]_10_Java中==与equal()方法的区别?重写equal()方法?