當前位置:首頁 » 編程語言 » c語言運行後就停止
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言運行後就停止

發布時間: 2023-07-05 14:59:39

1. c語言程序運行後自動關閉,怎麼辦

可以在main函數返回前,加入一句
system("pause");
或getch();
就可以使我們能夠看清程序的輸出,直到我們按任意鍵後再返回到代碼編輯界面。

2. c語言程序一運行就停止工作

typedef
struct
{
int
CoeffArray[
MaxDegree
+
1];
int
HighPower;
}*
Polynomial;
按照你的定義
Polynomial是一個指針類型
Polynomial
Poly1
;只是定義了一個指針,並沒有實例化對象
Poly1->HighPower=
1000
;像這樣的操作是不行的,因為此時Poly1的HighPower域還沒有非配空間。
下面是正確操作
Polynomial
Poly1
=
(Polynomial
)malloc(sizeof(int)*(MaxDegree
+
2));
Poly1->HighPower=
1000
;

3. C語言程序已停止工作是怎麼回事

int a,b;
scanf("%d%d",&a,&b);//參數必須是指針(地址)才可以。
scanf()函數要求參數必須是指針類型,即將地址傳輸到其內,才可以讓a , b變數中獲取到數據。
如果你學過指針,你就會理解了。

C語言中函數的調用中,參數傳遞,只能傳遞數值。如果只是將數值傳遞過去(接收者是形參),在子函數中變化,形參的變化,不會影響到實參數據的內容。
C中,每定義一個變數,系統都會在內存中給其分配一個空間用來存儲數據。而這個空間的編號就是這個變數的地址。當我們將這個地址傳遞到子函數中,子函數在操作數據時,就會改變這個地址中的數據,這樣,實參的數據是會發生變化。
而你程序中,傳遞的是a b本身的值(可能是0,可能是1,可能是任意的數),scanf()將這兩個值當作地址去操作,因此會產生系統錯誤,導致程序運行停止。

4. 一運行C語言程序 就提示程序已經停止工作

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

C中,每定義一個變數,系統都會在內存中給其分配一個空間用來存儲數據。而這個空間的編號就是這個變數的地址。當我們將這個地址傳遞到子函數中,子函數在操作數據時,就會改變這個地址中的數據,這樣,實參的數據是會發生變化。

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

5. c語言代碼執行到一半終止

大概問題,我已經知道了,所謂的執行到一半就終止,是因為數組越界了,而且編譯器不會報警。
比如,在你這個程序里,我輸出50-200,他永遠只會提示你有21個,因為你輸出之前,還需要把這個偶數存放到一維數組a中,然而一維數組只能存放20個數,50-200中間有76個偶數,到了第20個偶數的時候,數組就已經越界了,程序就運行不正常了,應該是直接跳出了循環。而你是在數組存放了第20個數的後面進行了i++,所以提示是第21個數,數組是從0開始計數的,你是從一開始提示的,所以第21個數其實就是數組a[20]的數,然後就跳出循環了,只要偶數大於21個,程序永遠都只顯示21個數,建議要麼把數組去掉,這樣就可以顯示全部的偶數了,就正常了,要麼把數組設置的大一點,但是這樣,如果數太多了,還是會溢出的,看你的感覺是想保存前20個偶數,那麼建議程序改成這樣,就能即保存前20個數,顯示的也是正常的。
代碼如下:
#include <stdio.h>
#include <windows.h>
int main()
{
int a[20];
int c,d,e,f,g,h,i;
long b;
printf("起始值:");
scanf("%d",&c);
printf("終止值:");
scanf("%d",&d);
d++;
for(b=c;b<d;b++)
{
if(b%2==0)
{
if(i<20)
{
a[i]=b;
}
i++;
printf("第%d個偶數:%d\n",i,b);
}
}

printf("%d到%d中有%d個偶數",c,d,i);
return 0;
}

6. C語言程序運行顯示停止運行

你的C語言程序中,輸入語句scanf("%d,&a");和scanf("%d,&b");寫錯了,應該是scanf("%d",&a);和scanf("%d",&b);雙引號的位置不對.

你的C語言程序我幫你改完了,你看看吧(改動的地方見注釋)

#include<stdio.h>

intmain(){

inta,b,c,d,e,f,g;

printf("請輸入a的值: ");

scanf("%d",&a);//這里把scanf("%d,&a");改成scanf("%d",&a);

printf("請輸入b的值: ");

scanf("%d",&b);//這里把scanf("%d,&b");改成scanf("%d",&b);

c=a+b;

d=a-b;

e=a*b;

f=a/b;

g=a%b;

printf("a+b的值為:%d ",c);

printf("a-b的值為:%d ",d);

printf("a*b的值為:%d ",e);

printf("a/b的值為:%d ",f);

printf("a%b的值為:%d ",g);

return0;

}

7. C語言程序運行以後就會立刻關閉

因為你的程序沒有暫停的,所以運行完了之後,就自動關了唄。。。
在最後加個
getchar();
或者
system(pause);