本文目錄一覽:
- 1、求助大神為什麼我用c語言編寫的程序運行的時候顯示程序停止工作?
- 2、C語言出現「已停止工作」的問題。
- 3、一運行C語言程序 就提示程序已經停止工作
- 4、本人用C語言編程,可是出現了一運行就停止工作。怎麼回事,求大腿們幫幫眼看看哪裡出問題啦。。。
- 5、在運行C語言程序時為什麼就提示程序已停止工作?
- 6、C語言程序運行時顯示編程.exe停止工作,怎麼辦?
求助大神為什麼我用c語言編寫的程序運行的時候顯示程序停止工作?
scanf語句和printf語句都有錯誤。
正確的代碼如下:
scanf(“%lf”,fRadius);
printf(“圓的面積為: %lf\n”,fResult);
是%lf,而不是%If,scanf語句中,,fRadius在””後面,而不是在””裡面。
C語言出現「已停止工作」的問題。
樓上是坑,把別人的問題發到你這裡。或者是直接複製的別人的答案。
scanf(“%d”,b);
這句話要加上符號啊~~
改成scanf(“%d”,b);
而且演算法也不對!
誒,還是讓我幫你重寫一份吧。。
# includestdio.h
int main()
{
int a[15],b,i,temp=1;
printf(“請輸入要求的階乘數:”);
scanf(“%d”,b);
printf(“\n”);
for(i=0;i=b-1;i++)
a[i]=i+1;
for(i=1;i=b;i++)//這種事情i要從0開始,否則無論什麼情況a[0]總要*進去,導致結果永遠是0
temp=temp*a[i];
printf(“%d”,temp);
return 0;
}
一運行C語言程序 就提示程序已經停止工作
試試重新建立工程,編譯以下空代碼的程序:
int main()
{
}
如果這個空代碼編譯運行不出問題,說明你的程序在調用scanf或者調用指針時候有內存上的錯誤出現。(仔細查看代碼中的scanf和指針調用時的內存使用錯誤,也可以把所有用到指針和scanf的地方先屏蔽,找出哪個地方內存分配不對)。
如果這個空代碼運行也出問題,說明是你編譯器有問題。
本人用C語言編程,可是出現了一運行就停止工作。怎麼回事,求大腿們幫幫眼看看哪裡出問題啦。。。
取地址符呢?吃了?
另外,\n也吃了…
對你程序的改進
#includestdio.h
int main (void)
{
int i = 0;
struct contractinfor
{
char num[9];
char name[8];
int chinese;
int english;
int mash;
int sum;
int score;
}studern[3];//為了方便調試,這裡就用一個小的數
while (i3)//建議使用While循環
{
printf(“\n—–\n Please put the %d student number:\n”, i+1);
scanf(“%s”,studern[i].num);
printf(” Please put the student name:\n”);
scanf(“%s”,studern[i].name);
printf(” Please put the student Chinese:\n”);
scanf(“%d”,studern[i].chinese);
printf(” Please put the student English:\n”);
scanf(“%d”,studern[i].english);
printf(” Please put the student Mash:\n”);
scanf(“%d”,studern[i].mash);
studern[i].sum=studern[i].chinese+studern[i].english+studern[i].mash;
studern[i].score=studern[i].sum/3;
i++;
}
i = 0;
while (i3)//輸出
{
printf( “\n—–\nThe student number:\t%s\n”,studern[i].num);//’\t’表示製表符
printf( “The student name:\t%s\n”,studern[i].name);
printf( “The student sum:\t%d\n”,studern[i].sum);
printf( “The student score:\t%d\n”,studern[i].score);
i++;
}
return 0;
}
輸出結果:
在運行C語言程序時為什麼就提示程序已停止工作?
C語言中函數的調用中,參數傳遞,只能傳遞數值。如果只是將數值傳遞過去(接收者是形參),在子函數中變化,形參的變化,不會影響到實參數據的內容。
C中,每定義一個變數,系統都會在內存中給其分配一個空間用來存儲數據。而這個空間的編號就是這個變數的地址。當我們將這個地址傳遞到子函數中,子函數在操作數據時,就會改變這個地址中的數據,這樣,實參的數據是會發生變化。
而你程序中,傳遞的是a b本身的值(可能是0,可能是1,可能是任意的數),scanf()將這兩個值當作地址去操作,因此會產生系統錯誤,導致程序運行停止。
C語言是一種計算機程序設計語言,它既具有高級語言的特點,又具有彙編語言的特點。它由美國貝爾研究所的D.M.Ritchie於1972年推出,1978年後,C語言已先後被移植到大、中、小及微型機上,它可以作為工作系統設計語言,編寫系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬體的應用程序。
它的應用範圍廣泛,具備很強的數據處理能力,不僅僅是在軟體開發上,而且各類科研都需要用到C語言,適於編寫系統軟體,三維,二維圖形和動畫,具體應用比如單片機以及嵌入式系統開發。
C語言程序運行時顯示編程.exe停止工作,怎麼辦?
這種情況叫做 runtime error (運行時錯誤)。請按照結尾的五條提示找出代碼中的錯誤,改正後就沒問題了。
在 Windows 7 上這樣提示:
在 Windows XP 上這樣提示:
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]
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/289593.html