為什麼在編譯C 程式的時候是沒有錯誤的,但是執行的時候就是

2021-04-20 19:17:58 字數 812 閱讀 1716

1樓:吾守護奇蹟

編譯通過只是說明沒有語法錯誤,執行不出結果就是你**邏輯問題了貼**看看吧,自己打斷點除錯一下

while(r=!0)

寫反了吧, r != 0

否則就成死迴圈了。。。

2樓:夢中睡客

可能是你沒有輸出結果吧?

3樓:翼下之風

你可以跟蹤除錯一下就知道了

4樓:百科大全才

沒有編譯錯誤, 有邏輯錯誤;

你最好把**貼出來看看;

這個c程式編譯顯示沒有錯誤,為什麼不能執行?

5樓:育知同創教育

引數復必須制是指標(地址

bai)才可du以zhi。 scanf()函式要求參

數必須是指標類dao型,即將地址傳輸到其內,才可以讓a , b變數中獲取到資料。 如果你學過指標,你就會理解了。 c語言中函式的呼叫中,引數傳遞,只能傳遞數值。

如果只是將數值傳遞過去(接收者是形參),在子函式中變化,形參的變化,不會影響到實引數據的內容。 c中,每定義一個變數,系統都會在記憶體中給其分配一個空間用來儲存資料。而這個空間的編號就是這個變數的地址。

當我們將這個地址傳遞到子函式中,子函式在運算元據時,就會改變這個地址中的資料,這樣,實參的資料是會發生變化。 而你程式中,傳遞的是a b本身的值(可能是0,可能是1,可能是任意的數),scanf()將這兩個值當作地址去操作,因此會產生系統錯誤,導致程式執行停止。

為什麼在c 上寫好且執行的程式在ACM編譯器上卻編譯錯誤

如果真想做acm,就不要用vc6.0,vc對標準c 支援很差。用dev c 正賽windows系統都沒有,要學會用emacs netbeans eclipse 若出現編譯錯誤,各oj上都會有提示,告訴你哪行錯了。常見vc正確,但標準c 錯誤的 1.void main 純粹m yy gcc和iso c...

為什麼在編輯的時候一按空格字就沒有了

那是因為你不小心在你的鍵盤上按錯鍵了,把 改寫 選中了,輸入一個字會自動覆蓋掉後面的字,只需再按下 ins 那個鍵就好了,你地,明白?word中為什麼按空格鍵後面的字就沒有了 因為這時word處於改寫模式。word有兩種輸入模式 插入模式和改寫模式。當word處於改寫模式時,按空格鍵,這時輸入的空格...

為什麼c語言程式執行輸入後沒有輸出

輸入格式不對,要輸入 浮點數 並用 逗號 分隔輸入三個數兩個逗號後還要額外多加一回車才開始後面的流程,如果把scanf f,f,f n a,b,c 改為scanf f f f a,b,c 就可以用空白符做分隔了,現在你的程式是指定要用半形逗號做分隔符用回車做最後字元 另外程式邏輯也差一點,沒檢查 b...