邏輯不對但是編譯器能運行
A. 為什麼C編譯器可以編譯,但不能執行
執行的時候需要的庫未能正確找到,建議你重新安裝或者在選項中指定輸出、系統庫的路徑,或者在OPTIONS里有一項Directories,把裡面的Output Directory設置成你自己的路徑,然後回到Options里點擊保存設置(saveoptions)就可以了。
B. C++程序編譯連接都沒有問題,但是運行時卻什麼東西都出不來,也沒有報錯,怎麼回事啊
應該是邏輯錯誤吧。邏輯錯誤不同於語法錯誤,編譯器是不會告訴你的。
記得我做數據結構課設的時候就是指針指向不對,結果雖然能運行,但是就是不出結果。。好好檢查一下吧。書上的例子最好看懂了以後自己默敲在電腦里,而不要做typewriter,明白么?望樓主收獲更多。
C. c++中什麼是語法錯誤,什麼是編譯錯誤
程序的錯誤主要分成三種:
編譯鏈接錯誤;
編譯鏈接錯誤又分成編譯錯和鏈接錯。
編譯錯就是普通意義上的語法錯,編譯器進行語法檢查不通過,也就是程序違背了計算機語言的語法,例如:括弧不匹配、變數名拼寫錯誤、用保留字定義變數名等;
鏈接錯是指程序通過了語法檢查,但是無法生成可執行文件,最常見的是鏈接找不到lib庫。初學者有時寫了函數的聲明,但是缺少函數的定義,此時就會出現鏈接錯。
運行錯誤;
運行錯是程序可以執行,但是在執行過程中發生異常,提前退出程序。最常見的是指針越界,打開文件失敗繼續讀取文件,總而言之是讓計算機執行一些不能執行的語句。
邏輯錯誤
邏輯錯是程序也能運行,就是結果不對,主要原因有:程序演算法本身錯誤,程序和演算法不同義等。
例如:新手經常將判斷相等的==寫成=賦值,往往就會導致邏輯錯。
你的BD(int,int); 是一句函數調用?還是一句函數聲明?
D. 我在編寫c語言代碼的時候,有時候代碼會有一些邏輯上的錯誤,就是代碼可以運行,但得不到正確的結果.
新手最郁悶的事情莫過於程序可以運行但是卻得不到自己的結果了吧。
老手最郁悶的事情莫過於新手問為什麼我的程序可以運行但是卻得不到自己的結果了吧。
比如:
你天天用操作系統。
如果你用過Windows98就應該知道那時候系統經常崩潰的。
但是微軟設計的時候,不會把它故意設計成每小時或者沒幾天崩潰幾次吧。
不崩潰的時候,程序不也是正常運行么。
為什麼得不到自己想要的結果:
那是因為你的程序根本就沒有寫對
比如:
老師讓你輸出:1
你寫個程序輸出:2
你的代碼當然編譯不會出錯。
而且可以很好的運行,但是結果就是2.
永遠都不會是1,因為你就讓他輸出的2,結果怎麼會是1呢。
開發人員都知道:
再也沒有比修改語法錯誤再簡單的了
直接看看編譯器報的錯,看看第幾行,修改。OK。。太簡單了
邏輯錯誤就得調試了
這個世界上只有調試不開發的。沒有開發不調試的。
不會debug。永遠都不是程序員。
你不可能一下子就得到自己想要的結果。
尤其是比較大的程序。
gdb..學習它,使用它,愛上它。
(gdb *nix平台的。如果,而且我猜你用的是Windows,Windows用vs不錯)
E. C++中邏輯錯誤、語法錯誤、編譯錯誤分別出現什麼情況
語法錯誤 就會導致 編譯錯誤
編譯錯誤和連接錯誤不能生成可執行程序
邏輯錯誤 沒辦法檢查,只能影響結果
F. 為什麼編譯沒有錯誤,運行卻有錯誤
99% 的情況下都是編譯正確運行錯誤
編譯正確只是說你沒有錯別字, 不代表你說得有道理.
G. (c語言)我找到問題了,編譯器沒有報錯,還可以運行,誰能解答一下
你這代碼錯了
能運行但是,不建議這樣寫,因為有歧義
%s->字元串(char[])佔位符
%c->單個字元(char)佔位符
char a;//單個字元
char s[10];//字元串
scanf("%c",&a);//輸入單個字元
scanf("%s",s);//輸入字元串
printf("%c",a);//輸出單個字元
printf("%s",s);//輸出字元串
H. c語言為什麼有時候編譯能過,運行卻出錯
棧溢出啊,還有佔位符格式什麼的,原因很多,編譯通過只是第一步