A. c語言 編程 代碼 為什麼會出現這種錯誤 怎麼解決
產生這個問題可能的原因
1, 你用vc建了一個控制台程序,它的入口函數應該是main, 而你使用了WinMain.
2. 你用vc打開了一個.c/.cpp 文件,然後直接編譯這個文件,這個文件中使用了WinMian而不是main作為入口函數。vc這時的默認設置是針對控制台程序的。
解決方法
1.進入project->setting->c/c++, 在category中選擇preprocessor,在processor definitions中刪除_WINDOWS, 添加_CONSOLE
2.進入project->setting->Link, 在Project options中將/subsystem:windows.改為/subsystem:console
3.保存設置,Rebuild All.
(2)、LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/WinMain.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
你試試吧,可能是這個原因,這個問題出現的原因挺多的
B. 編程的總是報錯怎麼辦
本身編程是一項很嚴謹的工作,如果你在寫代碼的時候,如果錯了一個字母或者錯了一個符號,都會導致程序編譯失敗,進而導致整個程序報錯,所以你需要養成細心的習慣,仔細排查你寫的代碼,這樣,長期以後,你寫代碼的能力會越來越強的,思路也會越來越清晰。希望能幫到你。
C. 編程錯誤的時候一般怎麼找出錯誤,不是編譯錯誤是編程錯誤
通常編程錯誤分為如下幾種類型:
(1)、程序源代碼中的語法錯誤。這類錯誤是最容易檢查出來的。例如:在 C 語言中沒有定義某個變數就使用該變數。源程序舉例如下:
void main( )
{
int n1 = 50 ; /* 定義了一個整型變數 n1,並賦初值為 50 */
printf("n1 = %d\tn2=%d\n", n1, n2) ; /* 輸出變數 n1、n2 的值 */
}
由於在使用 printf 語句之前並沒有定義 n2 變數,故該程序在使用編譯器對源程序進行編譯時會出現語法錯誤。
(2)、程序源代碼中的警告錯誤。這類錯誤就不像(1)中那樣容易檢查出來。通常的情況有:數組越界、或者是雖然定義了某個變數,但是未對其進行初始化就引用它,等等。這些都會引起程序莫名其妙的錯誤。而這些錯誤會加大程序的調試難度。源程序舉例如下:
程序一、數組越界問題的舉例
void main( )
{
int a[100] ; /* 定義一個數組元素個數為 100 的整型數組 a,正確的下標范圍是:a[0] - a[99] */
a[100] = 500 ; /* 對數組下標元素 a[100] 進行賦值為 500,該錯誤就屬於數組越界錯誤 */
}
程序二、雖然定義了某個變數,但是未對其進行初始化就引用它的舉例
void main( )
{
int i, sum ;
for( i = 0 ; i <= 100 ; i ++ )
sum += i ;
}
該程序的功能是:將變數 i 的值從 0 到 100 之間進行循環,求累加和,並將結果保存在變數 sum 中。由於變數 sum 在進入 for 循環之前並未將其清零(sum = 0),故該程序會隨著 C 語言的編譯器的不同、以及計算機操作系統的不同(Windows、或者是 Linux),而導致該程序的運行結果也是隨機的。
程序一、以及程序二的錯誤就是屬於警告錯誤。C 語言編譯器在對這類程序進行編譯時,並不檢查該程序中是否有數組越界現象、或者是雖然定義了某個變數,但是未對其進行初始化就進行引用的檢查。這類錯誤,用戶就比較難於調試。
至於說到底需要多長時間才能夠將自己編寫的源程序全部調試通過,這個因人而異。編程經驗豐富的人員花費的時間就會短一些。反之,調試程序所花費的時間就會長一些。
D. 對於C語言編程出了錯,怎麼能快速找出錯誤呢
最直接的方法就是編譯,編譯後再按F4可以顯示錯誤信息及錯誤位置。
如果編譯通過,卻運行結果異常或不理想,往往是邏輯問題,請按順序檢查,如i++寫成i--,i++寫成j++,++i寫成i++,<=寫成<,有的變數一次循環後需要重新賦值清零,在循環末尾一定要寫上重新賦值語句。
E. 為什麼會編程錯誤
你的程序我幫你改完了(見圖,改動的地方見注釋)