代码调试技巧小集合(C语言描述,但C/C++/Pascal通用)

但有可能由于题目的输入数据巨多,要是手工输入将会非常累。
例如输入的数据可能多达成千上万。
【菜科解读】
但有可能由于题目的输入数据巨多,要是手工输入将会非常累。
例如输入的数据可能多达成千上万。
其实以下将要介绍的代码技巧,对于做ACM题目较多的人来说,他(她)们也肯定会知道的。
本文算是在做普及工作吧。
首先,从手工转为自动方式,最显然的就是从文件读入的数据代替手工。
如果在源代码里希望把输入从屏幕输入定向到一个文件,可以使用freopen函数(C/C++均支持此方法),以下为示例:#include int main(void){freopen("in.txt","r",stdin); //输入从in.txtint a,b;while(scanf("%d%d", &a, &b)!=EOF){printf("%d\n", a+b);}return 0;}这样你可以把题目的输入内容先保存的in.txt文件里,在程序运行后看看屏幕输出,看是否和题目的样例输出一样。
从这里也可以看出,输入和输出是完全独立的,您不必把所有输入或输出保存,直到程序全部计算完毕再输出,这样会很浪费内存,我们也不希望你这样做。
你应当在你能够确定输出内容的时候就马上输出,能少占用内存就少用。
如果你希望本地调试成功的代码不用修改就可以直接提交到OJ系统上,那你应该加上如下预处理(OJ系统通用标准,不支持这个特性的OJ就不合格):#ifdef ONLINE_JUDGE //判断是不是OJ系统上编译#define FINPUT(file) 0 // 如果是,则不重定向到文件#else#define FINPUT(file) freopen(file,"r",stdin)#endif#include int main(void){FINPUT("in.txt"); //如果不是则输入从本地in.txtint a,b;while(scanf("%d%d", &a, &b)!=EOF){printf("%d\n", a+b);}return 0;}如果你懂得命令行下运行一个程序,那么你可以不用修改源代码,假设你的代码所生成的程序名是temp.exe,在命令行下运行:temp.exeint main(void){FINPUT("in.txt"); //如果不是则输入从本地in.txtFOUTPUT("out.txt");int a,b;while(scanf("%d%d", &a, &b)!=EOF){printf("%d\n", a+b);}return 0;}在命令行下则可以:temp.exe out.txt2.断言和运行时错误捕获断言对于初学者来说,可能是一个很新鲜的名词。
但这个东西对于软件调试来说有一个非常有用的东西,不过使用的时候也得小心,不正确的使用甚至会适得其反。
首先,断言就是在逻辑上,你认为一定会得到的结果,例如你假定内存分配一定成功,那么返回值一定不为NULL,在你包含了头文件assert.h或者cassert后,就可以使用assert(exp);exp是你需要断言的表达式,bool类型,当exp为true的时候,断言成功,程序继续执行,否则程序强制停止,并且发出警告。
这样你就可以明确得知程序发生了逻辑问题,必须进行修改。
但问题就在于,如果你直接使用assert(exp)这个函数,那么这个断言不管在什么情况下都会编译进执行文件,如果提交到OJ上,并且断言在内循环里,就显得这个断言会占用相当的时间。
如果我们不希望发布正式版本的软件或者提交代码时去掉这个断言以提升速度,我们又可以用宏封装一下:#ifdef ONLINE_JUDGE //判断是不是OJ系统,非OJ系统调试可另起名字#define ASSERT_LEVEL 1#else#define ASSERT_LEVEL 0#endif#if (ASSERT_LEVEL>=1)#define ASSERT(exp) _assert(#exp, __FILE__, __LINE__)#else#define ASSERT(exp) 0#endifdouble foo(int n) //计算阶乘{ASSERT(n>=0);return n*foo(n-1);}#include int main(void){int n=10;printf("%d\n", foo(n));return 0;}以上为一个错误递归算阶乘的程序示例,运行一下你就知道断言的威力了。
那个foo函数应当改为:double foo(int n) //计算阶乘{ASSERT(n>=0);if(n==0)return 1;return n*foo(n-1);}使用断言还有很多技巧和需要注意的东西,这里暂不多说,先自己体会体会吧。
关于运行时错误捕获,很多人马上就想到了C++的try。
但事实上,这种方法不一定能把异常都捕获,但在OJ系统里面,你任何一个没有进行处理的异常的抛出都会导致RE(注意main函数返回非0也RE),尽管有些异常不会对运行结果有影响,操作系统也会忽略掉,于是一般运行的时候用户也无法发现已经出现异常。
同样,VC也是MS的产品,连操作系统都忽略的异常,用它去调试同样也忽略,你不能依赖VC调试器得到所有异常的信息,所以你不要以为VC上调试没有出现任何异常信息就以为那真的是正确的代码,有可能是系统忽略掉,也有可能是你自己的测试用的数据没有触发它。
对于这个问题目前本人也没有较好的解决办法,所以还是建议你,养成良好的编程习惯,适当的地方就加上断言,以增加异常被捕获的机率,这样就更容易发现出错的地方。
代码,调试,技巧,小,集合,语言,描述,但,C++,
新手必看w10如何重装系统详细教程快速掌握技巧
软件支持 在线重装、U盘制作、自定义重装 等多种模式。
简介:在快速发展的科技时代,Windows 10因其稳定性和丰富的功能而在全球范围内被广泛应用。
然而,系统随着时间的推移可能会出现卡顿、故障等问题,此时重装系统便成为一个有效的解决方案。
本文为大家详细介绍新手必看的Windows 10重装系统教程,让您快速掌握这一重要技能。
工具原料:系统版本:Windows 10 版本21H2及以上品牌型号:Dell XPS 13 9310, HP Spectre x360 14, Lenovo ThinkPad X1 Carbon Gen 9软件版本:媒体创建工具版本20H2一、准备工作1、备份数据在重装系统之前,首先确保您的数据安全是重中之重。
准备一个外接硬盘,或者使用云存储服务如OneDrive、Google Drive进行重要文件的备份。
此外,还需记录下重要的软件许可证和激活码。
2、下载Microsoft媒体创建工具访问Microsoft官方网站,下载最新版本的媒体创建工具。
此工具将帮助您创建Windows 10安装介质,确保选择与当前系统版本匹配的工具版本以避免不必要的兼容性问题。
二、创建安装介质1、准备USB闪存驱动器准备一个容量至少为8GB的USB闪存驱动器,并将其连接至电脑。
请注意此过程中将会格式化U盘,确保其内无任何重要数据。
2、使用媒体创建工具制作安装盘运行下载好的媒体创建工具,选择“为另一台电脑创建安装介质(U盘、DVD或ISO文件)”选项,按照提示选择合适的语言、版本和架构(一般为64位)。
选择USB闪存驱动器并开始制作,过程可能需要较长时间,请耐心等待。
三、重装系统1、从USB引导启动电脑插入制作好的USB系统安装盘,重启电脑,并进入BIOS设置界面。
通常在开机时按下F2、Del或Esc键可进入(具体键视品牌型号而定),在启动顺序中选择从USB设备启动。
2、开始Windows 10系统安装系统通过USB启动后,按照屏幕提示进行安装。
选择自定义安装,删除系统盘上的原有分区,此步骤将彻底清除系统盘上的所有数据。
接下来选择“新建”以创建新分区并选择其作为Windows安装目标,继续安装过程。
3、完成设置并激活系统安装过程完成后,系统会引导您进行初次设置,包括地区、语言、网络连接等配置。
按照提示完成设置,并在需要时输入Windows 10许可证密钥以激活系统。
拓展知识:1、创建系统还原点在新系统安装完成并经过基本配置后,建议创建一个系统还原点。
这将有助于未来出现问题时,快速恢复到当前状态。
2、保持系统更新Windows 10定期推送安全更新和新功能,为确保系统的安全性和稳定性,务必及时安装这些更新。
可以在设置中启用自动更新功能。
3、安装必要的驱动程序重装系统后,有些设备驱动程序可能需要重新安装。
建议使用电脑制造商官方网站提供的驱动下载服务,以确保设备正常运转。
总结:重装Windows 10系统看似复杂,但只要按照步骤细心操作,您将发现其实并不困难。
通过掌握这一技能,您可以轻松解决一系列系统问题,并为电脑注入新活力。
希望上述教程能帮助到各位新手用户,在未来的使用过程中,更多地关注数据备份和系统更新,以维持系统的高效稳定运行。
标签: 注意:本站所刊载的文章均为学习交流之用,请勿用于商业用途。
对于商业使用,请联系各自版权所有者,否则法律问题自行承担。
Windows7旗舰版密钥激活指南:全面解析与常见问题解决方案 系统之家win7重装全攻略:解决所有安装难题 新手必看w10怎么重装系统详细教程快速掌握技巧 分类于: 回答于:2024-12-19 简介:在快速发展的科技时代,Windows 10因其稳定性和丰富的功能而在全球范围内被广泛应用。
然而,系统随着时间的推移可能会出现卡顿、故障等问题,此时重装系统便成为一个有效的解决方案。
本文为大家详细介绍新手必看的Windows 10重装系统教程,让您快速掌握这一重要技能。
工具原料:系统版本:Windows 10 版本21H2及以上品牌型号:Dell XPS 13 9310, HP Spectre x360 14, Lenovo ThinkPad X1 Carbon Gen 9软件版本:媒体创建工具版本20H2一、准备工作1、备份数据在重装系统之前,首先确保您的数据安全是重中之重。
准备一个外接硬盘,或者使用云存储服务如OneDrive、Google Drive进行重要文件的备份。
此外,还需记录下重要的软件许可证和激活码。
2、下载Microsoft媒体创建工具访问Microsoft官方网站,下载最新版本的媒体创建工具。
此工具将帮助您创建Windows 10安装介质,确保选择与当前系统版本匹配的工具版本以避免不必要的兼容性问题。
二、创建安装介质1、准备USB闪存驱动器准备一个容量至少为8GB的USB闪存驱动器,并将其连接至电脑。
请注意此过程中将会格式化U盘,确保其内无任何重要数据。
2、使用媒体创建工具制作安装盘运行下载好的媒体创建工具,选择“为另一台电脑创建安装介质(U盘、DVD或ISO文件)”选项,按照提示选择合适的语言、版本和架构(一般为64位)。
选择USB闪存驱动器并开始制作,过程可能需要较长时间,请耐心等待。
三、重装系统1、从USB引导启动电脑插入制作好的USB系统安装盘,重启电脑,并进入BIOS设置界面。
通常在开机时按下F2、Del或Esc键可进入(具体键视品牌型号而定),在启动顺序中选择从USB设备启动。
2、开始Windows 10系统安装系统通过USB启动后,按照屏幕提示进行安装。
选择自定义安装,删除系统盘上的原有分区,此步骤将彻底清除系统盘上的所有数据。
接下来选择“新建”以创建新分区并选择其作为Windows安装目标,继续安装过程。
3、完成设置并激活系统安装过程完成后,系统会引导您进行初次设置,包括地区、语言、网络连接等配置。
按照提示完成设置,并在需要时输入Windows 10许可证密钥以激活系统。
拓展知识:1、创建系统还原点在新系统安装完成并经过基本配置后,建议创建一个系统还原点。
这将有助于未来出现问题时,快速恢复到当前状态。
2、保持系统更新Windows 10定期推送安全更新和新功能,为确保系统的安全性和稳定性,务必及时安装这些更新。
可以在设置中启用自动更新功能。
3、安装必要的驱动程序重装系统后,有些设备驱动程序可能需要重新安装。
建议使用电脑制造商官方网站提供的驱动下载服务,以确保设备正常运转。
总结:重装Windows 10系统看似复杂,但只要按照步骤细心操作,您将发现其实并不困难。
通过掌握这一技能,您可以轻松解决一系列系统问题,并为电脑注入新活力。
希望上述教程能帮助到各位新手用户,在未来的使用过程中,更多地关注数据备份和系统更新,以维持系统的高效稳定运行。
菜科网系统致力于解决 Windows 系统重装解决方案,提供高效、安全、免费的系统重装服务。
联想重装系统按什么键?快速掌握一键重装技巧指南
软件支持 在线重装、U盘制作、自定义重装 等多种模式。
简介:在使用计算机的过程中,许多人可能会遇到系统故障或者需要重装系统的情况。
联想电脑用户可能会疑惑如何快速进行系统重装。
在这篇文章中,我们将介绍重装联想电脑系统时需要按下的键,以及一键重装的具体步骤和注意事项。
工具原料:系统版本:Windows 11品牌型号:联想ThinkPad X1 Carbon(2023款),联想Yoga 9i(2023款)软件版本:Lenovo System Restore(联想系统恢复工具)2023版一、重装系统的前期准备1、备份数据:在重装系统之前,务必备份计算机中的重要数据,以免在重装过程中丢失。
2、确保电源充足:系统重装是一项耗时工作,建议连接电源以防中途断电。
3、验证恢复分区:联想大多数机型都配有恢复分区,确保恢复分区完好并未被删除。
二、进入系统重装模式1、重启电脑,并在启动时按下F12键:联想电脑通常通过按下F12键进入引导菜单。
在设备启动过程中,当屏幕出现联想Logo时,立即连续按下F12键。
2、选择启动项:在引导菜单中,可以选择从USB、恢复分区或其他媒体启动。
选择系统恢复选项来进入重装界面。
三、使用一键恢复功能1、启动联想一键恢复工具:使用一键恢复功能可大大简化重装过程。
选择“System Recovery(系统恢复)”进入一键恢复界面。
2、遵循提示步骤进行恢复:系统会引导用户通过简单的步骤重装操作系统。
根据提示,选择“恢复出厂设置”或“手动重装”选项并确认。
3、等待恢复完成:一旦确认重装选项,系统将自动开始重装过程,这可能需要几十分钟。
在恢复过程中,请勿关闭电脑电源。
拓展知识:1、除了F12键,在部分联想机型上,Enter键可以用于进入特定的启动菜单,随后选择进入BIOS或启动选项。
2、联想笔记本的新型号通常支持“按需恢复”功能,这一功能允许用户在系统故障时,通过按下Novo按钮(小纽扣型按钮,通常位于机身侧面),快速进入恢复菜单。
3、联想电脑的一键恢复工具依赖于电脑硬盘上的隐藏分区。
因此,在分区或更换硬盘时,应当小心避免损坏此分区。
4、由于技术更新,联想的部分高端机型支持从云端恢复系统,在联网条件下无需本地恢复分区即可重装系统。
总结:联想电脑重装系统是一个相对简便的过程,尤其对于新型号来说,无需复杂的技术知识,只需通过特定按键和简单的界面引导即可完成重装。
本文介绍的操作步骤和一些实用的技巧,旨在帮助用户更高效地解决因系统故障带来的困扰。
标签: 注意:本站所刊载的文章均为学习交流之用,请勿用于商业用途。
对于商业使用,请联系各自版权所有者,否则法律问题自行承担。
Windows7旗舰版密钥激活指南:全面解析与常见问题解决方案 系统之家win7重装全攻略:解决所有安装难题 联想重装系统按什么键?快速掌握一键重装技巧指南 分类于: 回答于:2024-12-17 简介:在使用计算机的过程中,许多人可能会遇到系统故障或者需要重装系统的情况。
联想电脑用户可能会疑惑如何快速进行系统重装。
在这篇文章中,我们将介绍重装联想电脑系统时需要按下的键,以及一键重装的具体步骤和注意事项。
工具原料:系统版本:Windows 11品牌型号:联想ThinkPad X1 Carbon(2023款),联想Yoga 9i(2023款)软件版本:Lenovo System Restore(联想系统恢复工具)2023版一、重装系统的前期准备1、备份数据:在重装系统之前,务必备份计算机中的重要数据,以免在重装过程中丢失。
2、确保电源充足:系统重装是一项耗时工作,建议连接电源以防中途断电。
3、验证恢复分区:联想大多数机型都配有恢复分区,确保恢复分区完好并未被删除。
二、进入系统重装模式1、重启电脑,并在启动时按下F12键:联想电脑通常通过按下F12键进入引导菜单。
在设备启动过程中,当屏幕出现联想Logo时,立即连续按下F12键。
2、选择启动项:在引导菜单中,可以选择从USB、恢复分区或其他媒体启动。
选择系统恢复选项来进入重装界面。
三、使用一键恢复功能1、启动联想一键恢复工具:使用一键恢复功能可大大简化重装过程。
选择“System Recovery(系统恢复)”进入一键恢复界面。
2、遵循提示步骤进行恢复:系统会引导用户通过简单的步骤重装操作系统。
根据提示,选择“恢复出厂设置”或“手动重装”选项并确认。
3、等待恢复完成:一旦确认重装选项,系统将自动开始重装过程,这可能需要几十分钟。
在恢复过程中,请勿关闭电脑电源。
拓展知识:1、除了F12键,在部分联想机型上,Enter键可以用于进入特定的启动菜单,随后选择进入BIOS或启动选项。
2、联想笔记本的新型号通常支持“按需恢复”功能,这一功能允许用户在系统故障时,通过按下Novo按钮(小纽扣型按钮,通常位于机身侧面),快速进入恢复菜单。
3、联想电脑的一键恢复工具依赖于电脑硬盘上的隐藏分区。
因此,在分区或更换硬盘时,应当小心避免损坏此分区。
4、由于技术更新,联想的部分高端机型支持从云端恢复系统,在联网条件下无需本地恢复分区即可重装系统。
总结:联想电脑重装系统是一个相对简便的过程,尤其对于新型号来说,无需复杂的技术知识,只需通过特定按键和简单的界面引导即可完成重装。
本文介绍的操作步骤和一些实用的技巧,旨在帮助用户更高效地解决因系统故障带来的困扰。
菜科网系统致力于解决 Windows 系统重装解决方案,提供高效、安全、免费的系统重装服务。