C語言,這裡編譯沒有錯誤,為什麼執行時出錯

2021-03-03 21:01:38 字數 1817 閱讀 7134

1樓:匿名使用者

x是整型,在最後乙個printf函式

中應該用%d,你用的是%lf。如果你要回用%lf,程式應該改答為:

#include "stdio.h"

void main( )

2樓:匿名使用者

是求最大公約數吧?

printf("%lf",x);中的控制符不正確,應改為%d,即printf("%d",x);

3樓:入門到入土的猿

emm,我跑了下沒問題啊,可以說下程式是做什麼的嗎,還有輸入輸出應該是什麼啊

c語言程式,編譯沒有錯誤,執行時出錯。問題在哪? 100

4樓:匿名使用者

1 編譯階段,執行的是對單個檔案的轉換,從源**轉換成二進位制檔案。

2 鏈結階段,將每個原始檔轉成的二進位制檔案,及相關的系統庫檔案共同打包生成可執行檔案。

3 從定義上可以看出,鏈結階段,出現錯誤有兩種可能:

1) 函式中引用了不存在的函式。

2) 編譯環境有問題,導致ld出錯。

5樓:在角落悠哉的風

首先編譯已經報錯: 有乙個找不到的符號鏈結_max

max這個函式你只宣告了但沒有定義,也就是編譯器只知道有這麼個函式,但是函式是做什麼的,不知道。

如果你是新手,諮詢一下其他同學或者老師,這個問題實在不應該發出來,自學才是最好的老師。

6樓:匿名使用者

#include

int max(int a,int b);

int main(void)

int max(int a,int b)

max函式未定義

c語言程式設計時編譯沒有錯誤,執行時卻顯示有乙個錯誤。為什麼? 5

7樓:匿名使用者

不沒有寫max函式的具體定義,在主函式中又要使用這個函式,系統找不到,自然就錯了。你把max函式的定義寫全了,就沒事了。

8樓:ongame卓傑

你沒有寫max()函式的原型啊,這讓編譯器怎麼理解max()?

9樓:匿名使用者

重新建立乙個專案 過 重新編譯就可以。

10樓:

刪掉# include

int main()

{int max(int x,int y);

int a,b,c;

。。。中的【int max(int x,int y);】

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

11樓:育知同創教育

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

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

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

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

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

C語言程式沒有錯誤但執行不了,為什麼我的C語言程式沒有錯誤卻總是不能執行

scanf應該使用 語句修改為 scanf d a i 為什麼我的c語言程式沒有錯誤卻總是不能執行 linking.link fatal error lnk1104 cannot open file debug cpp1.exe 執行 link.exe 時出錯.這個我也抄 遇見過,其實你這段話寫的沒...

為什麼老師用DevC編譯沒有錯誤,同樣我編譯就顯示出錯,是系統問題嗎

一般新人出現這種問題都是符號中英文,缺少符號,變數名錯誤等,仔細檢查。這個c程式編譯顯示沒有錯誤,為什麼不能執行?引數復必須制是指標 位址 bai 才可du以zhi。scanf 函式要求參 數必須是指標類dao型,即將位址傳輸到其內,才可以讓a b變數中獲取到資料。如果你學過指標,你就會理解了。c語...

為什麼vc編譯了以後沒有錯啊,為什麼執行就錯了

你的data都沒有例項,pointer指向誰呢?修改了下 ch stack.h struct data class ch stack ch stack.cpp include ch stack.h const int max len 100 const int empty 1 const int f...