㈠ 用C語言編程程序沒有錯誤為什麼結果不對
程序可以運行並不表示程序就是正確的
編譯和連接都正確,只能說明編譯器對他進行語法等檢查
沒發現他的錯誤而已,而既然運行結果是錯誤的,那就是說明一點
可能是你的演算法設計的不當,不能正確的解決問題,這樣發生的錯誤
是運行期錯誤,在編譯連接的過程不會出錯的,不過幸好,編譯器也為我們
提供了一些解決類似運行期錯誤的一些調試工具,通過debug,進行單步調
試下,觀察變數值,看看是不是你想要的等等解決此類問題,具體如何單步
調試見下面:
不過你先要設置斷點,然後按下面操作
在VC++6.0中的單步調試:
調試重要的幾個鍵:
F9在當前游標所在的行下斷點,如果當前行已經有斷點,則取消斷點.
F5調試狀態運行程序,程序執行到有斷點的地方會停下來.
F10單步執行程序.
CTRL+F10運行到游標所在行.
F11和F10的區別是,如果當前執行語句是函數調用,則會進入函數裡面.
SHIFT+F11跳出當前所在函數.
步驟:
1,保存為c或c++文件
2,根據斷點調試找到錯誤處。
3,採用F10或F11單步調試找到精確的錯誤處。其中f10是跳過函數盜用,f11是進入函數體調試。一般是先用f10,確定函數輸入輸出是否正確(與自己想的一樣),如不一樣,則用f11進入函數體一步一步調試。
4,在調試過程中,肯定得監視程序中的變數。在vc6.0的右下角有一個watch窗口,專門用來設置監視變數。具體怎樣設置自己體會吧。在調試過程中,滑鼠輕輕放在變數上也會顯示該變數的值
5,vc6.0專門為調試設置了工具箱以方便調試的進行,打開的方法如下。右鍵——〉在debug(或調試)選擇項的勾勾上。ok
㈡ 對於C語言編程出了錯,怎麼能快速找出錯誤呢
代碼是否存在邏輯錯誤:
1、變數使用前未被數值
實例:
int main()
{
int x=5,y,z;
z=x*y;
printf("%d",z);
return 0;
}
在此程序中變數y在使用之前未被賦值,所以結果輸出z的值就會是系統隨機分配一個值給y再加乘以x的值。
2、把賦值賦值符號「=」與等於符號「==」相混淆
實例:
有一下語句:
if(a=5)
{
printf("a等於5");
}
輸出的結果永遠都是「a等於5」,原因是在執行if(a=5)之時,無論a之前是什麼值,此時都會被重新賦值為5,而不是把a的值與5相比較,而正確的表示比較的表示為:
if(a==5)
{
printf("a等於5");
}
(2)編程知道演算法程序寫不對怎麼辦擴展閱讀
C語言編程注意事項:
1、書寫標識符時,忽略了大小寫字母的區別。
2、將字元常量與字元串常量混淆。
3、忽略了變數的類型,進行了不合法的運算。
4、忽略了「=」與「==」的區別。
5、忘記加分號。
6、多加分號。
7、輸入變數時忘記加地址運算符「&」。