一些容易錯的地方

2021-06-27 08:40:10 字數 2097 閱讀 2484

錯誤1.

錯因:compileerror 

錯誤資訊如下:

./source/main.cpp: in function 'int main()':

./source/main.cpp:12: error:

'k' was not declared

in this scope

正確**如下

錯誤2.

答案錯誤:

輸出結果不對,看看是不是忘了輸出必要的換行或者大小寫錯誤?如果不是,那很可能你的程式邏輯有問題,或者有特殊的資料沒有考慮。

程式邏輯有問題

例:nyoj 695  判斷三角形

應該判斷是三角形成立後,在判斷是等腰和是等邊,所以後兩個判斷應該在第乙個判斷的if條件語句裡。

正確**如下

邏輯程式有問題  nyoj  874 簽到

由題意 連續簽到,前4天每天獎勵1個oj幣,第5天獎勵6個,但是第6天則會認為是連續簽到2天,以此類推。。。

1,如果t小於4,則每天乙個,如果大於四,進入迴圈6 1 1 1,餘數p=(t-4)%4;這裡p有2中情況p==0,4>p>0.當p==0時,無oj幣;當4>p>0時,有5+p個oj幣;

正確**如下

錯誤3

timelimitexceeded

多組資料輸入不說明都以eof結束,

while(~scanf("%d",&n))

錯誤4:寫冒泡注意:n個數要排n-1次

for(int i=0;ia[j+1])

}}

錯誤5,不熟練

計算乙個數的二進位制,方法高中就學過,東西要往源頭想,記憶力不強,不要去想以前做的時候是怎麼做的,印象裡留下的殘枝碎葉反而會影響做題速度。

while (m>0)

錯誤6:不清楚  nyoj  4   

ascii碼排序

字元存進陣列裡的是ascii值,字元也可以直接用sort 排序

#include#includeusing namespace std;

int main()

sort(a,a+3);

for(int i=0;i<3;i++)

printf("\n");

}}

錯誤7:亂添符號,少加東西

上次周賽就在  nyoj  60 誰獲得了最高獎學金  因為多寫了乙個分號,檢查錯誤,浪費了10分鐘

還有 在for迴圈裡

int sum=0;

for(int i=0;i

int q=1;

for(int i=0;i錯誤8  函式使用需要注意

注意資料型別,比如用ceil時資料型別不能用整數,可以用double。

int main()

}

錯誤9 在題目給出n組資料情況下定義陣列

要用memset(a,0,sizeof(a));

#include#include#includeusing namespace std;

double a[205][15];

int main()

{ int t;

int n,m,k;

scanf("%d",&t);

while(t--)

{memset(a,0,sizeof(a));

scanf("%d%d%d",&n,&m,&k);

for(int i=1;i<=2*n-1;i+=2)

{

no.10

scanf輸入格式 int型

在兩個數之間加入一些空格 tab 換行符都是無關緊要的,但加入一些其他的如 ,  .  :  ;  '   "   "是會出現錯誤的。

如果在兩個數之間要輸入逗號等,可以scanf("%d%c%d",&a,&q,&b);

VC裡一些容易混淆的地方

1.false true與false true的區別 false true是標準c 語言裡新增的要害字,而false true是通過 define,這要用途是解決程式在c與c 中環境的差異,以下是false true在windef.h的定義 ifndef false define false 0 e...

VC裡一些容易混淆的地方

1.false true與false true的區別 false true是標準c 語言裡新增的關鍵字,而false true是通過 define,這要用途是解決程式在c與c 中環境的差異,以下是false true在windef.h的定義 ifndef false define false 0 e...

VC裡一些容易混淆的地方

1.false true與false true的區別 false true是標準c 語言裡新增的關鍵字,而false true是通過 define,這要用途是解決程式在c與c 中環境的差異,以下是false true在windef.h的定義 ifndef false define false 0 e...