慢慢更新,本人就是个纯新手,写一写犯过的错,告示后来人。
开幕雷击(一):
短短二十行代码,近200个报错,原地化身乐子人......
背景:pta函数题,头文件里没有
void s(){ #include
}..............
别耍小聪明就不会错了。
开幕雷击(二):致敬我的舍友出的傻缺bug(数据溢出类)
背景:pta凯撒密码,语法没错误,字母z右移8位本应变成h,结果我舍友:
char ans;ans+8...... 好家伙直接超出char的127范围,给我另一个室友整不会了,半天改不出来。
文件格式错误(三): vs2019,因为不重视文件格式,导致格式为cpp时 “gets” 报错。 在制作“简易井字棋”时,也因为cpp格式吃过亏。(目前只会C)
——————— 分————————————割———————————线—————————
(一)vs2019编译器报错:
诸如此类的报错,在最开头添加:#define _CRT_SECURE_NO_WARNINGS ,可以消除报错顺利编译。(pta等刷题网站上必须写scanf,不可以写scanf_s)
(二)pta报错(基本都是格式不对):
pta让你按照“1 + 1 = 2”输出,你就把空格打出来,别整成“1+1=2”
(三)漏掉 / 添加 / 弄错 各种符号:
1. 用中文写标点符号。
2. printf("%d",&n); scanf("%d",n) 用&用魔怔了属于是。
3. 同学,你结尾的 ; 呢?
4. for(;;),分号不是逗号; 自定义函数时void s(int t, int i),不要漏int,用逗号不用分号; do;while(1); while结尾别 漏了分号
5. scanf输入数据时留个心。 %1d 表示只输入个位数
6. char c; c=“a”; 字符用单引号‘’,字符串用“”,而且字符串需要用char c[20]来存储。
7. if(a=b); int a==3; ==是判断符,=是赋值符
8. for(int i=0;i=7;i++); (死循环) 表示判断应该用i==7,而i赋值为7,是非0的数,表明判断结果永远为true,就会让循环一直进行,导致死 循环。
9. if(3<=x<=9) ; 哥们这不是数学,要用 x>=3 && x<=9
10. switch(n) { case ‘A’:printf(“85~100n”); } ,最后边别忘了加break;
11.
(四) 数据类型(int char)相关错误:
1. float a,b,; printf(“%d”,a%b);. 一是你的a,b没有初始化,二是非整数不可以取余
2. 数据以补码形式存储在计算机里,请具体学习相关知识再理解此个“越界”错误。
3. 数组越界的错误很复杂,有时候不报错,有时候报错就奇奇怪怪的。
(五) 堆栈相关问题:
1. int a[1000000][1000]; 数组太大,stackover,
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)