版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、簡易C++除錯技巧,長庚大學機械系101.5.17,錯誤種類,編譯錯誤cl /EHsc file.cpp出現(xiàn)error程式錯誤程式可執(zhí)行,但是出錯,1. 編譯錯誤,常見錯誤:忘記 ";"忘記定義格式錯誤除錯方法:找尋錯誤行數(shù),讀錯誤訊息,再更正。,舉例,test1.cpp(8) : error C2784: 'std::basic_istream &std::oper
2、ator >>(std::basic_istream &,_Elem *)' : 無法由 '多載函式型別',針對 'std::basic_istream &' 推算 引數(shù) D:\Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\istream(934) : 請參閱 'std::operat
3、or >>' 的宣告test1.cpp(8) : error C2784: 'std::basic_istream &std::operator >>(std::basic_istream &,_Elem *)' : 無法由 '多載函式型別',針對 'std::basic_istream &' 推算 引數(shù) D:\P
4、rogram Files\Microsoft Visual Studio 9.0\VC\INCLUDE\istream(934) : 請參閱 'std::operator >>' 的宣告test1.cpp(8) : error C2676: 二元運算子 '>>' : 'std::ostream' 沒有定義此運算子或預先定義運算子可接受的型別轉(zhuǎn)換可能是: 第8
5、行>方向相法cin >>cout <<,舉例,test1.cpptest1.cpp(7) : error C2146: 語法錯誤 : 遺漏 ';' (在識別項 'cin' 之前)推測少了";",在第7行之前,也就是第6行。,2. 程式錯誤,除錯方法思想實驗:假設輸入值,跟著指令一行一行執(zhí)行。使用debug程式。使用cout。,例題:求陣列
6、最小值及下標,#include using namespace std;int main(){double A[3][2]={1.8, 4.9, 6.8, 6.2, 2.1, 3.4};int i,j,x,y;double Min;for (i=0;i= A[i][j]) { Min=A[i][j]; x=i; y=j; }cout<<"最大值"<<
7、;Min<<"下標"<<x<<","<<y<<endl;return 0;},續(xù),test.cppe:\tmp\cpp\test.cpp(10) : warning C4700: 使用了未初始化的區(qū)域變數(shù) 'Min'Microsoft (R) Incremental Linker Version 9.00.3072
8、9.01Copyright (C) Microsoft Corporation. All rights reserved./out:test.exe test.obj 增加Min=A[0][0], x=0, y=0 在for之前,續(xù),#include using namespace std;int main(){double A[3][2]={1.8, 4.9, 6.8, 6.2, 2.1, 3.4};int i
9、,j,x,y;double Min;Min=A[0][0];x=0;y=0;,for (i=1;i= A[i][j]) { Min=A[i][j]; x=i; y=j; } }cout<<"最小值"<<Min<<"下標"<<x<<","<
10、<y<<endl;system ("PAUSE");return 0;},續(xù),答案:最小值4.24612e-314下標2,3→錯誤→加cout,增加cout,#include using namespace std;int main(){double A[3][2]={1.8, 4.9, 6.8, 6.2, 2.1, 3.4};int i,j,x,y;double Min;
11、Min=A[0][0];x=0;y=0;,for (i=0;i<=2; i++) for (j=0;j<=3; j++){cout << i << " "<< j << " " << A[i][j]<<endl; if (Min <= A[i][j]) {
12、 Min=A[i][j]; x=i; y=j; cout << "inside if " <<i << " "<< j << " " << A[i][j] << endl; } }cout<<"最小
13、值"<<Min<<"下標"<<x<<","<<y<<endl;return 0;},續(xù),0 0 1.8inside if 0 0 1.80 1 4.90 2 6.80 3 6.2 → 1 0 6.8 →1 1 6.21 2 2.11 3 3.42
14、0 2.1 →2 1 3.42 2 1.8,inside if 2 2 1.82 3 4.24612e-314 → 錯誤數(shù)字inside if 2 3 4.24612e-314最小值4.24612e-314下標2,3→看出iteration錯誤,續(xù),0 0 1.8inside if 0 0 1.80 1 4.90 2 6.80 3 6.21 0 6.81
15、 1 6.21 2 2.11 3 3.42 0 2.12 1 3.42 2 1.8,inside if 2 2 1.82 3 4.24612e-314inside if 2 3 4.24612e-314最小值4.24612e-314下標2,3,解,#include using namespace std;int main(){double A[3][2]={1.8, 4.9,
16、6.8, 6.2, 2.1, 3.4};int i,j,x,y;double Min;Min=A[0][0];x=0;y=0;,for (i=0;i<3; i++) for (j=0;j<2; j++){ if (Min <= A[i][j]) { Min=A[i][j]; x=i; y=j; } }c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論