低階錯誤集合

2021-08-28 22:51:04 字數 2832 閱讀 7277

1.檔名打錯

2018.10.11

t1:

freopen

("forging"

,"r"

,stdin);

freopen

("forging"

,"w"

,stdout

);

看著好像沒什麼不對??

freopen

("forging.in"

,"r"

,stdin);

freopen

("forging.out"

,"w"

,stdout

);

100分慘變0分

總分150慘變50分

rk5慘變rk22

1.陣列開小

2018.9.21

t1(bzoj5218友好城市):

const

int n=

155,m=

3e5+

10,mx=

5e4+10;

struct qqr[mx]

;

emmm,實際上詢問是3e5

3e53e

5

const

int n=

155,m=

3e5+

10,mx=

5e4+10;

struct qqr[m]

;

100分慘變30分

總分190慘變120

rk1慘變rk2

const陣列常量最好不要開多個,很容易混淆

2.賦值錯誤

2018.10.17

用memcpy把大小為1e5的陣列a copy到了nxt大小為15的陣列裡(windows下居然正常執行,lin

ux

linux

linu

x評測就re了)。

memcpy(nxt,a,sizeof(a))
這類錯誤幾個月前犯的很多。

2018.10.8

t2:

printf

("%d\n"

,(f[x]

[m][k]

+f[z]

[m][k]

)%mod)

;

emmm,實際上這裡應該是上乙個y

printf

("%d\n"

,(f[x]

[m][k]

+f[y]

[m][k]

)%mod)

;

i,j打反,順手陣列打錯等等。

2019.4.2

rv=

atan2

(p[x]

.y,p[x]

.x);

寫成了atan2(y,x),調半天

原因:碼的時候過於著急

注重速度的同時沒有仔細看自己打的**(跟著邏輯走)

沒有理解清楚每個變數的含義和之間的關係

沒有仔細檢查

這種錯誤檢查的時候也很難看出來,就算看出來了也很難檢查全。

一些變數設成了全域性變數,導致錯用乙個不在分函式裡的變數也沒有re,最終導致了wa/re/tle變數重複使用

1.傳值/址錯誤

最近寫搜尋題時新發現的乙個問題,陣列傳值進函式需要用結構體,否則直接f(int res)會傳址,(即使是另乙個函式的區域性變數也會改變)

2.沒有return

int,long long類函式沒有return!不會re但是會wa

多組資料時沒有清空上一輪資料或沒有優化清空方式導致tle

多層if/else一定要多打大括號!

斜率優化中的平行於y軸的直線一定要判斷是inf還是-inf

分治遞迴時原本是:

for

(i=0

;i++i) reb[l+i]

=fz[i]

;for

(i=0

;i++i) reb[l+ca+i]

=fy[i]

;sol

(l,mid-

1,l,l+ca-1)

;sol

(mid+

1,r,l+ca,l+ca+cb-1)

;

錯寫成了

if

(ca)

if(cb)

然而在sol(l,mid-1,l,l+ca-1);之後fyfy

fy陣列已經改變了!!!

網路流前向星連邊記得初始化tot

=1

tot=1

tot=

1,這樣反邊才是xor

1\ xor\ 1

xor1

一定要先手玩樣例無誤後再開碼

一定要對拍!

最後15/10/5分鐘不要著急寫新的**,要檢查檔名輸入輸出

檢查的時候順便在檔案裡(.in

,.ou

t.in,.out

.in,.o

ut)輸出輸出看一下

為防止rere

re,構造滿資料跑一跑

const陣列常量最多開兩個

輸出所有的陣列的sizeof()注意不要mle

檢查題目中給的資料範圍和對應的陣列大小

不同變數取名盡量有區別性(避免慣性使用錯誤)

C 低階錯誤

1.陣列下標訪問越界 2.使用野指標 3.記憶體拷貝忽略字串結尾標誌 0 4.判斷無符號數是否小於0 5.迴圈變數資料型別太小 6.迴圈體內改寫迴圈變數 7.混淆 與 8.函式區域性變數或引數過大,堆疊溢位 9.資料型別不一致,變數或引數賦值出錯 10.分支流程未釋放動態申請的記憶體 案例 1 陣列...

order by asc低階錯誤

問題 查詢emp表,顯示部門號為10的所有雇員的name job sal和 deptno,並以工資公升序進行排序。14 30 24 sql select ename,job,sal,deptno from emp order by asc select ename,job,sal,deptno fr...

再現低階錯誤,該打!

ifdef cplusplus extern c endif 看著好像沒有啥錯誤,其實應該是extern c 大寫c 該打!編譯時一直提示錯誤 dlist.h 8 error language string c not recognize 還發現乙個gcc和g 的問題 gcc編譯.c檔案時,按照c編...