錯誤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幣;
正確**如下
錯誤3timelimitexceeded
多組資料輸入不說明都以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...