『壹』 C語言程序,編譯沒有錯誤,執行時出錯。問題在哪
#include<stdio.h>
intmax(inta,intb);
intmain(void)
{
inta,b,c;
scanf("%d%d",&a,&b);
c=max(a,b);
printf("maxis%d ",c);
return0;
}
intmax(inta,intb)
{
returna>b?a:b;
}
max函數未定義
『貳』 VC++6.0寫的C語言源代碼編譯沒問題但運行一直出錯,卸載重裝也一樣怎麼搞
你這個不可能編譯沒錯誤
\n要寫到雙引號裡面才行
另外vc早過時了,還是用vs吧
推薦vs2017
或者用dev-c++
『叄』 C語言代碼沒有編譯沒有錯誤,但在運行程序看結果,結果卻顯示不全
輸出性別那行的 格式 應當用 %c 。
你用了 %s, 因 printf() 找不到 '\0', 輸出流就亂了。
『肆』 C語言里程序編譯無誤但運行會彈出程序已停止運行是為什麼
造成程序停止運行彈框出錯的可能原因如下:
內存溢出
內存溢出(out of memory)通俗理解就是內存不夠,程序所需要的內存遠遠超出了主機內安裝的內存所承受大小,就叫內存溢出。系統會提示內存溢出,有時候會自動關閉軟體,重啟電腦或者軟體後釋放掉一部分內存又可以正常運行該軟體
造成內存溢出的原因可能有:
1>棧區溢出,例如在main函數內開辟的數組空間過大,一般機器的棧區限制在8MB左右,如果開辟的數組大小超過限制,程序就會崩潰。通常的解決方法是申請堆內存,即將較大的數組作為全局變數開在main函數之外。
2>錯誤地址訪問,常見的非法訪問包括指針漂移,數組越界等,初學者也經常出現類似scanf函數沒加區地址符號&的情況導致在讀取變數的時候因非法訪問造成的溢出。
3>數據類型不符,問題和第二個類似,例如在聲明變數時聲明為int在輸出變數時卻用了%lld,就會造成因數據類型不符而導致的溢出。
編譯器錯誤
部分編譯器由於所使用的標准不同(例如在一台機器上使用的可能是C99標准,而另一台機器上使用的是C11標准),或是因為編譯器鏈接庫的損壞,在少數情況下也可能導致程序出現不限於崩潰退出的異常錯誤,通常解決方法是到編譯器官方網站下載最新版的IDE安裝。
『伍』 C語言編程時編譯沒有錯誤,運行時卻顯示有一個錯誤。為什麼
不沒有寫max函數的具體定義,在主函數中又要使用這個函數,系統找不到,自然就錯了。你把max函數的定義寫全了,就沒事了。
『陸』 為什麼我寫的C語言程序編譯時沒錯,運行時有錯誤
樓主,你好!編譯沒有錯誤只能說明沒有語法錯誤,並不能說明代碼的邏輯沒有錯!因為編輯器主要是根據c語言的語法來檢查你的代碼有沒有錯!
『柒』 C語言程序不能運行,程序應該沒有錯誤,請問,是什麼原因
#include<stdafx.h>是預編譯頭文件,換成標准輸入輸出既
#include<stdio.h>就可以了,又不是工程文件
用stdafx干什麼,就算是工程文件也不能落下標准輸入輸出函數吧!
『捌』 編譯的C語言程序沒有錯誤就是運行不了怎麼回事
這個太多情況了,程序能編譯只能證明程序沒語法錯,程序有問題(如下標溢出,表達式不正確)可能導致程序無法運行或結果不正確的
『玖』 C語言編譯沒錯,運行報錯是怎麼回事啊
extern int max, min;這一句有問題
改成 int max, min;
因為extern是引用外部文件中的變數,他表示變數或者函數的定義在別的文件中,提示編譯器遇到此變數和函數時在其他模塊中尋找其定義。但是,你沒有相應的外部文件,直接在本文件中用變數的話不用extern。
『拾』 這段C語言程序,為什麼編譯沒問題,但運行出問題了,錯在哪
因為沒有max函數的定義,只有聲明,編譯時編譯器只知道你跟它「說」有這么一個函數,它「相信」你,編譯通過了。但是執行的時候找不到