首页 > 其他分享 >一些常用的技巧分享

一些常用的技巧分享

时间:2024-09-27 23:44:40浏览次数:1  
标签:常用 技巧 WA 代码 鼠鼠 CE warning c++ 分享

0. 前言

最近很多uu们过来问鼠鼠一些 c语言/python 的问题,遂决定开一个答疑帖,方便大家学习交流。但是呢既然开了帖,也就不只讲有疑问的地方,顺便把常见的一些问题都给大家过一遍。又考虑到很多uu跟鼠鼠一样是电脑小白,也顺带分享一些电子产品、生活小知识。

鼠鼠水平有限,内容仅供参考,有错误遗漏之处欢迎斧正。

注意:下文中大部分操作均为免费,有额外开销之处会予以标明。

1. c/c++ 入门

鼠鼠学习的课程是c语言,指定的编译器环境是 Embarcadero Dev-Cpp,下文以此为例展示。大家可以根据自己老师的要求调整。

(注:OI竞赛中习惯了 devc++ 的同学可以对标 dev,我个人觉得操作没有区别)

(注:学习 python 的uu们可以移步其他博客查看攻略,我用的是 pycharm)

1.1 下载

em devc++下载

em devc++下载指南

以上,可以从 sourceforge 或 github 上下载 Embarcadero Dev-Cpp。如果使用 devcpp (图标为蓝色的那个),可以使用腾讯下载

1.2 简单配置

刚下载好是这样的。

  1. 按住Ctrl键后鼠标滚轮可以控制右侧编辑区字体大小

  2. 鼠标指针移到左侧项目管理区和右侧编辑区的中缝处,按住左键往左拖,可以隐藏左侧项目管理区。

  3. 上方菜单选择 "工具" \(\rightarrow\) "编辑器选项"

    • 基本、显示、语法三项可以改变主题
    • (字体推荐默认的 Consolas)
    • (鼠鼠用的是 obsidian 主题: 基本-高亮显示当前行选择黑色,语法-预设选择 obsidian)
    • 代码:在"缺省源"中输入的代码会自动在所有新建文件中生成,就不用每份代码都打一遍头文件了。
    • 代码补全: Code Completion 会自动帮你匹配库函数、结构体对象等等,但是会写代码时突然卡手,建议关掉;完成符号会自动匹配括号和引号,看个人习惯使用,鼠鼠的只匹配大括号。
    • 自动保存:一定要打开!!!最好间隔调个1分钟。
  4. 上方菜单选择 "工具" \(\rightarrow\) "编译选项"

    • "设定编译器配置"最好是什么什么 64-bit Release

    • 开启"编译时加入以下命令"并输入以下代码:

    • -Wall -Wextra
      
    • 具体为什么后面说。

搞定了长这样。

1.3 新手常见错误

前人总结

下表速查:(CE 就是不能编译,warning 能编译但会警告,WA 就是答案错误,RE 就是运行时出错)

错误 结果 解决方案
int mian() CE 缺省源写对
retuen 0; CE 缺省源写对
return 0;忘了写 OI中WA 缺省源写上
分号,括号漏了 CE 看高亮确定配对关系,补上漏的
使用中文分号/逗号 CE(有时本地会通过,交题CE 写代码时一定注意输入法,英文,符号为半角!!!
赋值运算符和 == 不分 warning、WA 一定小心!!记牢c++的=是赋值
运算符优先级错误 warning、WA 不确定就多打括号,人为规定优先级
数组没开够 WA/RE 多开5个肯定就没事了
int溢出 WA 开long long
未初始化局部变量 warning、WA 养成初始化习惯

我们可以看到,上述错误中 CE、warning 的可以当场改过来,减少了考试暴毙的可能性。那么 warning 是怎么来的呢?诶,正是编译选项中这两个代码的功劳:

-Wall -Wextra

所以一定要编译选项加上这两句,写代码时把 warning 当作 error 来对待!

1.4 调试与对拍

1.4.1 中间输出调试

其实名字我忘了,乱编了一个

老师会教大家断点调试,但是这样做非常难受,看的人眼花。有没有好一点的调试方法呢?

中间输出调试

鼠鼠以 B3925 [GESP202312 三级] 小猫分鱼 为例。

看到这个题,鼠鼠对第一组样例进行分析:(两只猫,每轮丢掉一条鱼)

  1. 在只有一只猫时最少这只猫分1条,另一只分相等数量1条,外加丢掉1条,共3条。

  2. 在第二只猫时最少这只猫分3条(因为要留下3条进行1),另一只分相等数量3条,外加丢掉1条,共7条。

答案为7,符合样例1。

综上,鼠鼠分析出此题应该倒推:
每只猫的逻辑都是分 \(n\) 堆,取一堆,扔 \(x\) 个。记第 \(i\) 只猫扔完后还有 \(s_i\) 只鱼,则有:

\[s_i = \dfrac{n-1}{n}(s_{i-1} - x) \]

每只猫都有的吃,\(s_n = 1\) 最小,此时 \(s_0\) 就是答案(海滩上最少的鱼数)了。

反推公式可得

\[s_{i-1} = \dfrac{n}{n-1}s_i + x \]

鼠鼠开心地写出了如下代码:

#include<stdio.h>
#define fr(i,a,b) for(i=a;i<=b;i++)
#define ll long long
#define db double
#define mod 998244353
#define N 1005

int n,x;
int main(){
	scanf("%d%d",&n,&x);
	int s=1;
	int i;fr(i,1,n)s=s*n/(n-1)+x;
	printf("%d\n",s);
	return 0;
}

结果一看:

样例1通过了,可是样例2输出了7,明显不对。为什么呢?

这时就要用到中间输出调试来查错了。

鼠鼠先在

1.5 常见网站分享

这里与2和3中的有重叠,先于此汇总,2和3中相同的会放个 reference。
汇总

2. 电脑手机知识补充

3. 生活小寄巧

标签:常用,技巧,WA,代码,鼠鼠,CE,warning,c++,分享
From: https://www.cnblogs.com/zsj6315/p/18432535

相关文章

  • TS系列(4):常用类型之类、抽象类和接口
    你好,我是沐爸,欢迎点赞、收藏、评论和关注。TS系列(1):TS是什么?如何使用?TS系列(2):类型声明、类型推断和类型总览TS系列(3):常用类型(详细)话接上回,今天分享下类、属性修饰符、抽象类和interface(接口)10.复习类相关知识本小结复习类相关知识,如果有相关基础可以跳过。classPerson{......
  • C语言VS实用调试技巧
    文章目录一、什么是bug?二、什么是调试?三、Debug和Release四、VS调试快捷键4.1环境准备4.2调试快捷键五、监视和内存观察5.1监视5.2内存六、调试举例七、编程常见错误归类7.1编译型错误7.2链接型错误7.3运行时错误一、什么是bug?......
  • 学术论文写作?分享六个有手机就能写作的工具
    学术论文写作?分享六个有手机就能写作的工具对许多大学生来说,写论文是一个需要不断学习和提高的过程。尤其在初次写作时,学生可能会遇到许多困难。此时,一款论文修改工具可以大大简化这一过程。该工具能够自动分析论文内容,识别出语法、拼写和逻辑上的问题,并提供具体的修改建议。......
  • 毕业论文指导?分享个写作软件和工具?来对比看看吧
    毕业论文指导?分享9个写作软件和工具?来对比看看吧论文写作对大学生来说是个大挑战,特别是论文结构总让人抓狂。不过,现在有了一个方便的工具,它可以一键帮你搞定论文框架,让你的论文结构一目了然,轻松解决论文烦恼。1.Grammarly总之,Grammarly不仅是一个强大的语法检查工具,更是一个......
  • 论文英文格式?分享八个支持一键写作的工具
    论文英文格式?分享八个支持一键写作的工具大学生写论文时,常常会遇到各种问题,不知道怎么改才好。现在,有一个很实用的工具可以帮助你解决这个难题。它能识别你论文中的问题,并提供具体的修改意见,让你的论文变得越来越好。1.LingoJam增强逻辑性:AI写作工具能够帮助学生增强论文的......
  • 在线论文?分享四个写作软件和工具?来对比看看吧
    在线论文?分享四个写作软件和工具?来对比看看吧大学生在写论文时常常会遇到各种各样的问题,特别是对那些没有经验的人来说更是如此。幸运的是,现在有一款非常好用的工具,可以帮助你轻松上手,快速完成你的论文写作任务。1.Ulysses这个AI写作工具的实时字数统计功能对大学生写论文非......
  • 华为云技术专家分享4大举措,助力开发者开启鸿蒙原生应用开发
    本文分享自华为云开发者联盟公众号《DTSETechTalk|第66期:鸿蒙上云,加速开发者成长。》本期DTSETechTalk直播主题是《鸿蒙上云,加速开发者成长》,华为云HarmonyOSDTSE技术布道师芝诺在本议题中与开发者们交流华为开发者生态、鸿蒙生态愿景与进展,以及华为云开发者创新中心为开......
  • 9.Java常用类
    Object类超类、基类,所有类的直接或间接父类,位于继承树的最顶层。任何类,如没有书写extends显式继承某个类,都默认直接继承Object类,否则为间接继承。Object类中所定义的方法,是所有对象都具备的方法。Object类型可以存储任何对象。作为参数,可接受任何对象。作为返回值,可返回任......
  • HTML常用标签(第四课)
     清楚认识标签的语义,即标签的含义,以便在合适的地方写上合理的标签,让网页结构更加清晰目录一、标题标签二、段落标签三、换行标签​综合案例四、文本格式化标签五、div标签和span标签六、图像标签七、图片路径八、超链接标签九、注释标签十、特殊字符综合案例......
  • JS---浏览器的弹出层常用方法
     window.alert("11111111111")<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname=&q......