拿当前蓝桥杯所使用的5.4.0版本Dev C++举例
蓝桥杯官网下载地址
只能安装一个版本的dev 如果之前安装过需要先卸载原有版本
来一道简单的题输入两个整数A, B 输出A+B的和
数据保证输入的A和B都在int范围内
既然是int就拿int变量存了,附带一段看似正确的代码
#include <stdio.h>
int main()
{
int a, b;
scanf("%d%d", &a, &b);
int c = a + b;
printf("%d\n", c);
return 0;
}
输入2和5 输出7看似答案正确了
如果这是一道题你将会收到一个Wrong Answer 为什么呢
当输入2e9+2e9之后会发现结果输出了一个负数(2e9是在int范围内的整数)
当发现程序出错而不知道错在哪里的时候就需要单步调试来找出错误了
想要使用dev编译器进行单步调试写代码的时候就需要创建为项目 而不能是单个的文件
点击文件-新建-项目
选择ConsoleApplication(终端应用程序也就是黑色的框) 名称自己定一个
选择一个项目保存的路径 保存就创建完成了
可以在左边看到项目 点+展开双击main.cpp将代码粘贴进去
点击代码左侧可以将当前行添加断点
断点的作用就是当调试时代码运行到断点将会停止下来 等待你下一步指令再继续运行
添加好断点后按F5或者点击调试进入调试模式 每次修改后需要先编译再启动调试否则会调试上次的代码
进入调试模式后当前运行到的位置将会变成蓝色 左侧会多出一个调试窗口 用来监视变量 下面会多出一些按钮 作用等用到再讲
在左侧的调试窗口添加两个变量监视 现在就可以看到两个变量当前的值了(46和这个奇怪的数字是因为新的变量未被初始化内存位置的原数值)
按F7或者点下一步会发现一点反应都没有这是因为当前需要我们输入数字了 当输入完成后会自动向下运行一行
输入刚才出错的数据两个2e9会发现蓝色的运行到c = a + b的哪一行 并且a和b成功赋值2e9说明接受没有问题
添加变量c的监视并按下F7再运行一行发现c的值被改为了一个负数 找出错误所在 因为C/C++的int变量范围为-2147483648到2147483647 两个2e9的数值相加超出范围
当找出错误后按F6或停止执行退出调试 修改代码内变量类型为long long(范围-9e18到9e18) 接受和输出改为%lld再次输入两个2e9发现答案正确
单步调试是最常用的查找代码bug的方法 可以清楚的看到代码内部变量存储情况或者运行到哪个位置发生错误 如果程序没有按照预期执行则发现错误
这里只说了F5开始调试 F6停止调试 F7运行到下一行
还有跳过按钮(运行到下一个断点停止) 跳出函数按钮(当在函数内部时运行到函数结束停止) 这里不再一一说明
切记调试之前需要先按F8进行编译否则会调试上次的代码!!
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素必须是 1 和 2。你不需要考虑数组中超出新长度后面的元素。class So...
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.# yarn lockfile [email protected]:version "1.1.0"resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f8...
本帖最后由 sea18c 于 2019-11-5 01:06 编辑x86-64服务器中装了alpine系统搞了个影视服务器,需要内网方便不同地方连接。安装zerotier时踩了不少坑,现将正常的操作记录下,方便有需要的人与备份以防自己忘记。vi /etc/apk/repositories--------------------------------------------------------...
【火车高铁12306】改签/退票/变更到站的规定详解 - プロノCodeSteel - 程序员秘密托福考点评价:山东大学代码: STN80011A地址:洪家楼5号山东大学外国语学院(东区老校七号楼)三楼代码: STN80011B地址:洪家楼5号山东大学计算中心(东区老校三号楼)三楼代码: STN80011C地址: 洪家楼5号山东大学外国语学院(东区老校七号楼)三楼...
提案文档std::format函数详解测试代码:// main.cpp#include <format>#include <iostream>#include <string>#include <string_view> template <typename... Args>std::string dyna_print(std::string_view rt_fmt_str, Args&&... args) .
运算符汇总算数运算符算数运算符与C语言没什么区别。与C语言 不同的是,不是任何数都能相加的。比如12+7=19。12是一个4bit的数,7是一个3bit的数,得到的结果是一个4bit的数,然而19至少是一个5bit的数,所以多的部分会被抛弃(低位保留)。...
所谓技术参观,指写给技术玩家观看和互相交流的文章。本文是关于同一个apk程序实现“双开”(实际是伪双开)的一些想法和实现。一、关于apk程序的双开 今天查邮件看到有人发邮件问我android下的阿里旺旺怎么双开。经过我的中外查证,貌视同个apk程序没有办法运行多个实例,也就是同一个程序不能实现双开;同时同个程序也不能被安装二次,更进一步扼杀了双开的可能。于是那我唯一能想到的是:改
jsp页面中c标签 forEach、forTokens when choose if 与 input 【text,radio】select的综合运用 html代码 显示text或select
遇见问题: 修改了/tomcat/conf/server.xml后:(本来想直接把locahost改为公网ip试试,结果。。。。)结果: eclipse运行不了tomcat,查看说工作空间配置和tomcat配置不一致导致。最后我把eclipse的server也删了,现在不能添加tomcat9.0:解决方法: 最笨的办法,更换eclipse工作空间:-》file-》Switch Wor...
为什么会出现这个问题呢?经过一番思考找到原因了,是因为当前用户的操作权限太低了,出了问题出错问题截屏如下:解决问题方法如下:在dos下运行net start MySQL 不能启动mysql!提示发生系统错误 5;拒绝访问!切换到管理员模式就可以启动了。所以我们要以管理员身份来运行cmd程序来启动mysql。那么如何用管理员身份来运行cmd程序呢?
LITTLEVGL开发-PC模拟环境搭建一、 目的二、 步骤**2.1 安装visual studio2017**2.2 下载基于visual studio实现的littlevgl的demo2.3 下载libsdl和sdl库文件2.4 完善2.2节的demo一、 目的搭建一个可以在pc机学习littlevgl的开发环境。本次是基于visual studio2017实现。二、 步骤2.1 安...
日常工作生活中,我们常需要查看系统当前的磁盘空间使用情况。在windows下,只需简单点击我的电脑,就看到带进度条的系统磁盘使用情况,非常直观。那linux命令行下如何实现同样的功能呢?这就是我们今天要介绍的df命令。df(disk free)用来显示文件系统的使用情况。首先直接输入df命令,结果显示如下:[email protected]:~$ dfFilesystem 1K-blo...