為什麼C語言寫出來的程式執行會停止工作 15

2025-06-17 09:35:27 字數 5234 閱讀 4962

為什麼c語言寫出來的程式執行會停止工作

1樓:網友

你是在win7作業系統使用編寫的c語言吧?

如果是的話,程式出錯很正常,因為與win7的相容性不好,有很多時候都會出錯;隨著win7的一部分補丁的安裝,相容性會越來越差,往後甚至會出現。cpp檔案一開啟就出現崩潰。

建議在win7中使用visualstudio2010平臺。

另外,儘量少使用中文命名你的檔案或資料夾,有一些低階的軟體無法識別中文字元。

2樓:plus彭路

建議使用visualstudio進行斷點除錯。

3樓:66666順心

.我怎麼感覺做這個遊戲好逗啊!呵呵!

4樓:網友

自己除錯吧。可能是陣列越界之類的問題。

用c語言編寫東西 為什麼程式會停止工作?

5樓:金魚

這種情況叫做 runtime error (執行時錯誤)。

runtime error (執行時錯誤)就是程式執行到一半,程式就崩潰了。

比如說:除以零。

陣列越界:int a[3]; a[10000000]=10;

指標越界:int * p; p=(int *)malloc(5 * sizeof(int));p+1000000)=10;

使用已經釋放的空間:int * p; p=(int *)malloc(5 * sizeof(int));free(p); p=10;

陣列開得太大,超出了棧的範圍,造成棧溢位:int a[100000000]

6樓:網友

程式停止響應,是因為你的記憶體出現非法讀寫操作請檢查你的**所有關於記憶體讀寫的地方。

不能用下標 10 讀取陣列 x1 的內容,這樣子會導致陣列上標越界你只能使用 0 - 9 來讀取陣列 x1 的內容。

7樓:網友

scanf("%s",name[10]);改成scanf("%s",&name[10]);

scanf("%s",course[5]);改成scanf("%s",course);

printf("%s",name[i]);改成printf("%c",name[i]);

printf("%s",course[i]);改成printf("%c",course[i]);

c語言程式設計為什麼出現exe停止工作

8樓:

你的這種情況叫做 runtime error (執行時錯誤)。

<>runtime error (執行時錯誤)就是程式執行到一半,程式就崩潰了。

比如說:①除以零。

陣列越界:int a[3]; a[10000000]=10;

指標越界:int * p; p=(int *)malloc(5 * sizeof(int));p+1000000)=10;

使用已經釋放的空間:int * p; p=(int *)malloc(5 * sizeof(int));free(p); p=10;

陣列開得太大,超出了棧的範圍,造成棧溢位:int a[100000000]

9樓:倒黴熊

if(n=0)

break;

num[i]=n%base;

n=n/base;

判斷是 ==不是= ,乙個等號表示賦值,所以n=0,而這個迴圈會一直下去 死迴圈了。

10樓:牽著螞蟻採蘑菇

看看你的程式裡面的scanf語句中有沒有「&」這個符號,(舉個例子:scanf("%d",&a);這裡的&表示取位址,如果沒有這個符號會出現你講的這個現象)

11樓:晴雨蕩氣

yntax error : missing ';before '<

d:\學習系統2012\c語言檔案系統\vbxxb\ :error c2501:

include' :missing storage-class or type specifiers

d:\學習系統2012\c語言檔案系統\vbxxb\ :error c2143: syntax error : missing ';before '<

d:\學習系統2012\c語言檔案系統\vbxxb\ :error c2143: syntax error : missing ';before '{

d:\學習系統2012\c語言檔案系統\vbxxb\ :error c2447:

missing function header (old-style formal list?)

執行 時出錯。

1 error(s), 0 warning(s)

zhe這麼多的 錯誤。

12樓:網友

c=i;for(i=0;i這句問題大大的啊。

13樓:網友

這個一般是你的程式有記憶體錯誤或者邏輯錯誤。建議除錯執行。

c語言程式執行總是顯示已停止工作,怎沒改啊!!!求解!!!

14樓:在晴天的雨傘

int a,b;

scanf("%d%d",&a,&b);/引數必須是指標(位址)才可以。

scanf()函式要求引數必須是指標型別,即將位址傳輸到其內,才可以讓a , b變數中獲取到資料。

如果你學過指標,你就會理解了。

c語言中函式的呼叫中,引數傳遞,只能傳遞數值。如果只是將數值傳遞過去(接收者是形參),在子函式中變化,形參的變化,不會影響到實引數據的內容。

c中,每定義乙個變數,系統都會在記憶體中給其分配乙個空間用來儲存資料。而這個空間的編號就是這個變數的位址。當我們將這個位址傳遞到子函式中,子函式在運算元據時,就會改變這個位址中的資料,這樣,實參的資料是會發生變化。

而你程式中,傳遞的是a b本身的值(可能是0,可能是1,可能是任意的數),scanf()將這兩個值當作位址去操作,因此會產生系統錯誤,導致程式執行停止。

c語言編寫程式後,為什麼執行時自動關閉?

15樓:哎呀沃去

在前面變數定義部分增加:char buffer[20];

scanf改成:scanf("%s",buffer); ch=buffer[0];

16樓:鳳舞天族

你執行的時候按ctrl+f5就不會關掉了,最後一行顯示press any key to continue!

c語言中一般執行後停止工作有哪些情況

17樓:網友

只要編譯通過,一般情況下c語言程式停止工作,多為輸入輸出格式不對,或計算陷入死迴圈。

1、輸入輸出格式不對。最常見的就是&符號,該有的沒有,不該有的打了&符號。

例如:int n;

scanf("%d",n);

n前少打了&符號。編譯能通過,執行時就會出現停止工作的情況。

2、個別計算陷入死迴圈的情況,例如:

int i,k;

i賦值;k=關於i的表示式;

計算k值陷入死迴圈。

為什麼執行c語言程式設計時停止工作

18樓:網友

你的scanf語句應該改為scanf("%lf",&n);

這裡有兩個問題,第乙個是n是double型別,對應輸入輸出是%lf的格式,%d是整形輸出。

第二個是輸入語句的「%lf」是輸出格式,&n是輸入對應的變數,中間需要用,分開,不能寫在一起;

其次,你的printf("imul=%d",imul);也要該做%lf,請參考。

c語言程式執行後 出現exe停止工作 為什麼呢?

19樓:爤兜

c語言程式執行出現exe停止工作的原因是因為記憶體溢位和編譯器錯誤。

第一種:記憶體溢位。

記憶體溢位(out of memory)通俗理解就是記憶體不夠,程式所需要的記憶體遠遠超出了主機內安裝的記憶體所承受大小,就叫記憶體溢位。系統會提示記憶體溢位,有時候會自動關閉軟體,重啟電腦或者軟體後釋放掉一部分記憶體又可以正常執行該軟體。

第二種:編譯器錯誤。

舉例說明:1、除以零。

2、陣列越界:int a[3]; a[10000000]=10。

3、指標越界:int * p; p=(int *)malloc(5 * sizeof(int));p+1000000)=10。

4、使用已經釋放的空間:int * p; p=(int *)malloc(5 * sizeof(int));free(p); p=10。

5、陣列開得太大,超出了棧的範圍,造成棧溢位:int a[100000000],沒有開闢記憶體 list l=(list)malloc(sizeof(struct lnode))。runtime error (執行時錯誤)就是程式執行到一半,程式就崩潰了。

20樓:網友

這種情況叫做 runtime error (運bai行du

時錯zhi誤)。

在 windows 7 上這樣提dao示:

runtime error (執行時錯誤回)就是程式執行到答一半,程式就崩潰了。

比如說:除以零。

陣列越界:int a[3]; a[10000000]=10;

指標越界:int * p; p=(int *)malloc(5 * sizeof(int));p+1000000)=10;

使用已經釋放的空間:int * p; p=(int *)malloc(5 * sizeof(int));free(p); p=10;

陣列開得太大,超出了棧的範圍,造成棧溢位:int a[100000000]

21樓:電泡泡

a[6][6]下標是a[0~5][0~5]你的下bai面這段**du

for(i=2;i<7;i++)

for(k=1;k<=i-1;k++)

a[i][k]=a[i-1][k]+a[i-1][k-1];

迴圈已經越界了,計算機。

zhi找不到dao指定的區域,自然會跳出程版序,計算機程式設計邊。

22樓:郝在益

a[6][6]是從a[0][0]到a[5][5]的。

for(i=0;i<7;i++)

a[i][0]=1;

這裡你的i可以等於6,超過了範圍,所以就不行咯。

C語言,我的程式為什麼執行不對,c語言中輸入一個程式後顯示無錯誤,為什麼不能執行

是陣列,本身就是地址,不必用 2 b進位制,每位上的數字最大值是b 1,因此,應該先檢視3個數各位的數字,取最大值 1作為b的最小值.3 注意,base在每次求1個數之前,要重新歸1。你求sum1,sum2,sum3前,都沒有歸1,base累積,越來越大。第一個base 1 應該在for i len...

C語言讀程式執行結果是什麼,並請寫出原因謝謝

1.執行結果 wlo 分析如下 由main i 0 執行fun i printf c st i 輸出w 又 i 2 則i 2 執行func2 i 輸出 l 接著 i 2 i 4 執行 func1 i 輸出 o 最後輸出 wlo 2.執行結果 22 main函式執行f a j 0 則i 0 執行s b...

c語言問題,程式如下,執行結果為什麼是3,5,3,我看是3,

int a 3,b 5,c 7 if a b a b 這個if語句不成立 所以b不會賦值給ac a 這是把a賦值給c 這時a 3,b 5,c 3if c a c b 因為c等於a 所以這句不執行printf d,d,d n a,b,c 最後結果 3 5 3 include main 等價於 incl...