6月份各大高中特长生校考已经展开,在此过程中有许许多多前辈因各种各样低级错误无缘心仪高中,这其中最普遍的就是本地编译器的问题。
现在我来带大家再来看一下本地编译器(DEV C++)宽容到什么地步。
int a[1000];
a[-1]=1010;
cout<<a[-1];
明显a是不可能有-1号单元格的,但我们可以在本地运行一下,它是可以正常输出的。
离了个大谱。
下面我们来总结一些常见错误。
1.
ios::sync_with_stdio(false);
freopen("a.in","r",stdin);
freopen("a.out","w",stdout);
这个错得十分明显,文件输入输出必须放在所有东西上面的。
正确代码长这样:
freopen("a.in","r",stdin);
freopen("a.out","w",stdout);
ios::sync_with_sydio(false);
2.
freopen("a.in.txt","r",stdin);
freopen("a.out.txt","w",stdout);
这个是万万不可取的,使用的文件不能再带后缀名。
正确代码长这样:
freopen("a.in","r",stdin);
freopen("a.out","w",stdout);
3.
#include<iostream>
#include<cstdio>
#include<windows.h>
这个就十分恐怖,第一个,这样子写很多个头文件费时间不说,万一调用到什么它不认得的函数那就惨了。还有最重要的一点!不能用windows.h!本地查不出,交上去不给过的!
最完美的应该是这样:
#include<bits/stdc++.h>
用万能头就行了。
4.
char a[1000];
cin>>a+1;
cout<<strlen(a);
这个不能说查不出来吧,只是代码一长就很难找,这个代码它只会输出0。
正确代码长这样:
char a[1000];
cin>>a+1;
cout<<strlen(a+1);
5.
这里只是做个提醒,定义数组如果有多个长度相同的数组,尽量用常量定义,这样只需要修改常量就能修改所有数组,不会有哪个忘记改了的情况。
就像这样:
const int N=1e4+10;
int a[N],b[N],c[N];
还是祝愿大家在比赛考试时不要范这样的错误。
不过最后我还是想在这里藏一个火车头,相信赛场上没人用得了吧,平时用用也就算了。
#pragma GCC optimize(3)
#pragma GCC target("avx")
#pragma GCC optimize("Ofast")
#pragma GCC optimize("inline")
#pragma GCC optimize("-fgcse")
#pragma GCC optimize("-fgcse-lm")
#pragma GCC optimize("-fipa-sra")
#pragma GCC optimize("-ftree-pre")
#pragma GCC optimize("-ftree-vrp")
#pragma GCC optimize("-fpeephole2")
#pragma GCC optimize("-ffast-math")
#pragma GCC optimize("-fsched-spec")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("-falign-jumps")
#pragma GCC optimize("-falign-loops")
#pragma GCC optimize("-falign-labels")
#pragma GCC optimize("-fdevirtualize")
#pragma GCC optimize("-fcaller-saves")
#pragma GCC optimize("-fcrossjumping")
#pragma GCC optimize("-fthread-jumps")
#pragma GCC optimize("-funroll-loops")
#pragma GCC optimize("-fwhole-program")
#pragma GCC optimize("-freorder-blocks")
#pragma GCC optimize("-fschedule-insns")
#pragma GCC optimize("inline-functions")
#pragma GCC optimize("-ftree-tail-merge")
#pragma GCC optimize("-fschedule-insns2")
#pragma GCC optimize("-fstrict-aliasing")
#pragma GCC optimize("-fstrict-overflow")
#pragma GCC optimize("-falign-functions")
#pragma GCC optimize("-fcse-skip-blocks")
#pragma GCC optimize("-fcse-follow-jumps")
#pragma GCC optimize("-fsched-interblock")
#pragma GCC optimize("-fpartial-inlining")
#pragma GCC optimize("no-stack-protector")
#pragma GCC optimize("-freorder-functions")
#pragma GCC optimize("-findirect-inlining")
#pragma GCC optimize("-fhoist-adjacent-loads")
#pragma GCC optimize("-frerun-cse-after-loop")
#pragma GCC optimize("inline-small-functions")
#pragma GCC optimize("-finline-small-functions")
#pragma GCC optimize("-ftree-switch-conversion")
#pragma GCC optimize("-foptimize-sibling-calls")
#pragma GCC optimize("-fexpensive-optimizations")
#pragma GCC optimize("-funsafe-loop-optimizations")
#pragma GCC optimize("inline-functions-called-once")
#pragma GCC optimize("-fdelete-null-pointer-checks")