① 編寫c語言代碼是無法執行程序是怎麼回事
C語言代碼本身是不能被執行的,必須要進行編譯後才能產生可執行文件。
C語言編譯的過程中會自動產生兩個文件,其文件後綴分別是.o和.exe。
.o是編譯文件,用於減小更改程序後再編譯時的時間。
.exe 是可執行文件,在Windows系統下,只有.exe才是可以執行的程序。
如果在編譯後沒有產生對應的.exe文件就代表程序代碼出現問題,未通過編譯。
② 為什麼c語言無法運行程序
首先,檢查一下程序里有沒有中文字元。
其次,用#include"stdio.h"這種方式調用需要.h文件在當前路徑下。我個人認為改成#include<stdio.h>比較好。
再其次,沒有getch這個函數,只有getchar,建議你拿不準的時候網路。
語法的問題基本就是這些,說說語義,你的a沒復制直接printf沒有意義。
忘說了,還要在最後加上return 0;,雖然不加可能也沒什麼關系,編譯器可能會自己給你加,但是還是加上好。
③ 為什麼這個C語言程序不能運行
第1,*p=
&max;,應該改為p
=
&max
p是int型指針,這樣才類型匹配。
第2,fscanf(stdin,
"%d",
a[i]
這一行,
a[i]應該成&a[i],
fscanf傳入的是地址,漏&是初學者常見錯誤。
好像就這兩個錯,希望能對。
補充一下,while(fscanf(...)
==
1)這里是個死循環,就是說你的程序不會停的啊,你可以改成讀到負數就停之類的。
要是輸入一行就停的話,需要先把這一行讀入,再分析數字才能做到。
④ C語言沒有錯誤,但是無法執行
無法運行可能遇到的問題:
編譯沒錯,但是運行後彈出內存相關報錯------》有邏輯錯誤,或者內存調用錯誤
運行直接閃退---------------》有可能該程序無任何執行結果輸出語句,或者使用編譯器(or IDE)與操作系統不兼容
暫時只能想起這么多了。
⑤ c語言程序無法運行,求大佬
如果語言無法運行的話,那肯定是他的源程序中有了一些錯誤的編碼。
⑥ 為什麼C語言安裝後無法運行程序
看了題主的貼圖,VC編譯器報錯很清楚:無法編譯這個擴展名是「.txt」的文件,編譯工具(此處就是微軟的VC編譯器)沒有關聯這種文件擴展名(也就是「.txt」)。
C/C++的源代碼不都是文本文件嗎,為什麼還編譯不了?因為我們在保存C/C++源代碼時會把文件的擴展名改為「.c」。如果要是頭文件的話,我們會將擴展名保存為「.h」。
其實題主應該注意到,你寫的代碼中關鍵字信息(比如void)沒有特殊顯示。畢竟你使用的是IDE工具,所以這是很不正常的,原因也在於文件的擴展名問題!
如何修改擴展名?有很多方法,最簡單的方法就是在Windows中關閉「隱藏已知文件類型的擴展名」之後,
在修改文件名時修改擴展名。
題主作為初學者,犯這種各樣的錯誤無可厚非。請題主注意的是,計算機是嚴謹甚至刻板的學科,有些時候還認死理,所以要注意細節。
⑦ 自己編的C語言程序無法運行
獲取輸入的函數用法不對。後面的參數應該傳是的變數的地址:
scanf("%d,%d,%d",
&a,&b,&c
);
而且輸入的時候,要嚴格按鍵指定的格式輸入,包括逗號。
⑧ C語言 程序無法運行
#include <stdio.h>
#include <string.h>
char a[100];
char *c = "Sam";
char *d = "韋昊明";
int b = 0, e;
int main(void)
{
do
{
printf("Who are you? ");
scanf("%s", &a);
if(strcmp(a, c) == 0 || strcmp(a, d) == 0 )
{
printf(" Sam!! Sam!! Sam!! ");
printf("Sam!! Sam!! Sam!! ");
printf("Sam!! Sam!! Sam!! ");
printf("Sam!! Sam!! Sam!! ");
printf("Sam!! Sam!! Sam!! ");
printf("Enter 1 to continu, 2 to quit.");
scanf("%d", &b);
}
else
{
printf("Error: This program is not prepared for you. ");
printf("Please use the correct name. ");
printf("Enter 1 to continu, 2 to quit. ");
scanf("%d", &b);
}
}
while( b == 1 );
return 0;
}
指針a沒有初始化,沒有指向具體的內存空間,往裡面輸入字元串就是非法訪問。
這樣定義
chara[100];
⑨ C語言程序無法運行
turbo c編譯出來的是16位的DOS程序,涉及到直接存取磁碟、顯示內存的時候,不能在32位的OS下正確運行。。。
XP下通常只是以v86(模擬/虛擬86)方式運行DOS程序,包括tc/wintc本身。
⑩ C語言程序無法運行,求解
堆棧溢出!!!
導致原因是你代碼中的如下片段:
#define
SUBJECTS_NUM
10
//診別資料最大數目
#define
DOCTORS_NUM
50
//醫生資料最大數目
#define
MEDICINES_NUM
100
//葯物資料最大數目
#define
MATCHES_NUM
500
//校對資料最大數目
#define
PATIENTS_NUM
1000
//病人資料最大數目
#define
REPORTS_NUM
5000
//掛號資料最大數目
。。。
struct
SUBJECT
subjects[SUBJECTS_NUM+1],
sub;
//診別資料
struct
DOCTOR
doctors[DOCTORS_NUM+1],
doc;
//醫生資料
struct
MEDICINE
medicines[MEDICINES_NUM+1],
med;
//葯物資料
struct
MATCH
matches[MATCHES_NUM+1],
mat;
//校對資料
struct
PATIENT
patients[PATIENTS_NUM+1],
pat;
//病人資料
struct
REPORT
reports[REPORTS_NUM+1],
rep;
//掛號資料
就是定義的數組太大了。。(具體是5000那個比較恐怖,1000
VC6還可以)
解決辦法:
增大堆棧容量就,具體看你用的什麼編譯器,相應加大堆棧容量就可以。
以VC6為例子:
默認VC6編譯器堆棧容量1M.
更改方法如下:
工程
-->
設置
-->
連接
-->
"分類"
下拉菜單選
"輸出"
-->
在堆棧分配欄的
"保留"
編輯框處寫堆棧新容量,比如加大為
0x1000000。
然後即可。
補充回答:
if
(
!(fp_subjects
=
fopen(SUBJECTS_FILE,
"r"))
)
//開啟診別檔
{
printf("無法開啟診別檔,
程序終止!");
printf("\n");
exit(1);
你看看你代碼目錄下有相關文件沒??這個好理解啊。。你沒文件,打開文件當然不行了。。。另外你若問什麼建檔?還來什麼格式,那你就真不應該了。。,
這個問題應該問你自己,
莫非你這代碼是
來的,
然後根本不知道怎麼回事,
不知道這代碼是做什麼的,
在你玩這代碼的時候,你應該先去了解它是干什麼的,這個問題真不應該問,
要問你也應該是有所了解的情況下,
有可能在代碼實現的時候你看不懂,
然後你可以把相應你不懂的代碼帖出來,
這樣我可以給你分析。