編譯器顯示編譯但運行不了
A. 編譯器通過了程序卻無法運行
你的頭文件有錯誤:修改如下
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
#include "malloc.h"\\此處有修改
typedef struct node
{
int data;
struct node *next;
}NODE;
main()
{
NODE *head=NULL,*q;
int i;
for(i=0;i<10;i++)
{
q=(NODE*)malloc(sizeof(NODE));
scanf("%d",&q->data);
q->next=head;//從表頭插入節點
head=q;
}
printf("鏈表遍歷\n");
q=head;
while(q!=NULL)
{if(q->next!=NULL)
printf("%d->",q->data);
else
printf("%d",q->data);
q=q->next;
}
getch();//輸入代碼
}
B. 為什麼C++程序設計能編譯卻不能運行,而且不能鍵盤輸入
這個說明你的程序在邏輯上可能有問題了,因為編譯和運行是兩個過程,編譯的條件是:語句正確就可以通過的,但是,你要運行,是需要將整個程序塊鏈接起來的,不能運行,說明你的程序在鏈接後無法完成,你自習閱讀下你的程序,看看哪裡有邏輯上的錯誤,比如說死循環等等
C. 為什麼C語言程序編譯正確但不能執行
這當然原因非常多,比如:編譯器編譯不夠嚴格、程序有很大的風險等等,最簡單的一個例子如下:
inta;
scanf("%d",a);
可以確定的一點是:一旦在運行中出現錯誤,大多是較為嚴重的錯誤,須引起重視,否則,一旦錯誤非常嚴重,必會導致許多嚴重的後果,如死機、卡屏甚至直接導致藍屏。
D. 編譯成功了,但是不能運行,這是怎麼回事
可能是編譯器本身的故障,建議換其他編譯器吧!
E. 在Microsoft Visual C 6.0編譯器下為什麼通過了編譯的程序卻無法執行
可能很多人在安裝VC 6.0後有過點擊「Compile」或者「Build」後被出現的
「Compiling... ,Error spawning cl.exe」錯誤提示給郁悶過。很多人的
選擇是重裝,實際上這個問題很多情況下是由於路徑設置的問題引起的,
「CL.exe」是VC使用真正的編譯器(編譯程序),其路徑在「VC根目錄\VC98\Bin」下面,
你可以到相應的路徑下找到這個應用程序。
因此問題可以按照以下方法解決:打開vc界面 點擊VC「TOOLS(工具)」—>「Option(選擇)」
—>「Directories(目錄)」重新設置「Excutable Fils、Include Files、
Library Files、Source Files」的路徑。很多情況可能就一個盤符的不同
(例如你的VC裝在C,但是這些路徑全部在D),改過來就OK了。
如果你是按照初始路徑安裝vc6.0的,路徑應為:
executatble files:
C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin
C:\Program Files\Microsoft Visual Studio\VC98\BIN
C:\Program Files\Microsoft Visual Studio\Common\TOOLS
C:\Program Files\Microsoft Visual Studio\Common\TOOLS\WINNT
include files:
C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDE
library files:
C:\Program Files\Microsoft Visual Studio\VC98\LIB
C:\Program Files\Microsoft Visual Studio\VC98\MFC\LIB
source files:
C:\Program Files\Microsoft Visual Studio\VC98\MFC\SRC
C:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\CRT\SRC
如果你裝在其他盤里,則仿照其路徑變通就行(我就是裝在D盤)。
關鍵是microsoft visual studio\ 後面的東西要相同。
本人深受其害,重裝多次不管用,上面中文部分為高手借鑒,
下面路徑為本人深思所得,終於解決。與君分享。
F. C語言編譯成功,但運行不正常
應該跟編譯器有關系,樓主不妨將float的v改成double,應該沒什麼問題。用visual c++也會出現警告,只是結果是對的。
此問題只能是精度問題。
G. 為什麼c 編輯了一個文本 編譯成功但無法運行
EditPlus是一款非常棒的文本編輯器,適合於程序開發,有文字高量顯示等智能功能。在編輯java源代碼時,不用在去命令控制台中去編譯和運行,那樣效率就非常慢了,在EditPlus中可以設置編譯運行工具。現在我們設置一下java的編譯運行環境:
選擇工具-->配置用戶工具菜單,如圖

H. 能通過編譯,但卻不能成功運行
通不過MS VC++ 編譯器。
(1)stacknode *newptr=(struct stacknode *)malloc(sizeof(stacknode));
應當是:
stacknode *newptr=(stacknode *)malloc(sizeof(stacknode));
(2)linkstack *s; s->top=NULL;
s沒有初始化,就使用了。
(3)char elem;
scanf("%d",&elem); char 型不能用%d 格式
要麼改成 unsigned char elem
要麼改成 %s
I. C語言里程序編譯無誤但運行會彈出程序已停止運行是為什麼
造成程序停止運行彈框出錯的可能原因如下:
內存溢出
內存溢出(out of memory)通俗理解就是內存不夠,程序所需要的內存遠遠超出了主機內安裝的內存所承受大小,就叫內存溢出。系統會提示內存溢出,有時候會自動關閉軟體,重啟電腦或者軟體後釋放掉一部分內存又可以正常運行該軟體
造成內存溢出的原因可能有:
1>棧區溢出,例如在main函數內開辟的數組空間過大,一般機器的棧區限制在8MB左右,如果開辟的數組大小超過限制,程序就會崩潰。通常的解決方法是申請堆內存,即將較大的數組作為全局變數開在main函數之外。
2>錯誤地址訪問,常見的非法訪問包括指針漂移,數組越界等,初學者也經常出現類似scanf函數沒加區地址符號&的情況導致在讀取變數的時候因非法訪問造成的溢出。
3>數據類型不符,問題和第二個類似,例如在聲明變數時聲明為int在輸出變數時卻用了%lld,就會造成因數據類型不符而導致的溢出。
編譯器錯誤
部分編譯器由於所使用的標准不同(例如在一台機器上使用的可能是C99標准,而另一台機器上使用的是C11標准),或是因為編譯器鏈接庫的損壞,在少數情況下也可能導致程序出現不限於崩潰退出的異常錯誤,通常解決方法是到編譯器官方網站下載最新版的IDE安裝。

