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);