A. 用C語言編譯了代碼,可是運行總是出錯,不知道錯在哪請指教,急求!
1,修改後源程序如下:
#include<stdio.h>
int
main()
{
double
a,b,r;
char
c;
printf("請輸入三個數與符號/+-*的一個:\n");
scanf("%lf,%c,%lf,%lf",&a,&c,&b,&r);
switch(c)
{
case
'+':
printf("結果為:%.2lf+%.2lf+%.2lf=%.2lf\n",a,b,r,a+b+r);break;
case
'-':
printf("結果為:%.2lf-%.2lf-.2lf=%.2lf\n",a,b,r,a-b-r);break;
case
'*':
printf("結果為:%.2lf*%.2lf*%.2lf=%.2lf\n",a,b,r,a*b*r);break;
case
'/':
printf("結果為:%.2lf/%.2lf/.2lf=%.2lf\n",a,b,r,a/b/r);break;
default:
printf("你輸的數據有誤\n");break;
}
return
0;
}
VC++測試如下:
B. C程序編譯時沒問題,為什麼運行出錯
int a,b; scanf("%d%d",&a,&b);//參數必須是指針(地址)才可以。 scanf()函數要求參數必須是指針類型,即將地址傳輸到其內,才可以讓a , b變數中獲取到數據。 如果你學過指針,你就會理解了。 C語言中函數的調用中,參數傳遞,只能傳遞數值。如果只是將數值傳遞過去(接收者是形參),在子函數中變化,形參的變化,不會影響到實參數據的內容。 C中,每定義一個變數,系統都會在內存中給其分配一個空間用來存儲數據。而這個空間的編號就是這個變數的地址。當我們將這個地址傳遞到子函數中,子函數在操作數據時,就會改變這個地址中的數據,這樣,實參的數據是會發生變化。 而你程序中,傳遞的是a b本身的值(可能是0,可能是1,可能是任意的數),scanf()將這兩個值當作地址去操作,因此會產生系統錯誤,導致程序運行停止。
C. C語言編的這個程序,為什麼編譯成功,卻無法運行
幫你改了下
#include
<stdio.h>
int
main(void)
{
float
l
=
0.0;
float
q
=
0.0;
float
k
=
0.0;
printf("搖桿長度=");
scanf("%f",&l);
printf("擺角=");
scanf("%f",&q);
printf("行程速比系數=");
scanf("%f",&k);
return
0;
}
這樣就沒問題了。
編譯系統沒有自動連接上float
類型庫,你要提醒編譯器
引入float類型。
D. C語言編譯好後為什麼運行不出結果呢
這段代碼有問題:while(1){printf ("Hello/n");}循環語句沒有終止條件,循環會一直進行下去,得不到結果。
當前階段,在編程領域中,C語言的運用非常之多,它兼顧了高級語言和匯編語言的優點,相較於其它編程語言具有較大優勢。計算機系統設計以及應用程序編寫是C語言應用的兩大領域。同時,C語言的普適較強,在許多計算機操作系統中都能夠得到適用,且效率顯著。
C語言是一門面向過程的計算機編程語言,與C++、C#、Java等面向對象編程語言有所不同。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、僅產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
C語言描述問題比匯編語言迅速、工作量小、可讀性好、易於調試、修改和移植,而代碼質量與匯編語言相當。C語言一般只比匯編語言代碼生成的目標程序效率低10%-20%。因此,C語言可以編寫系統軟體。
E. 請問一下c語言為什麼編譯成功連接的時候提示錯誤了
這個不是代碼的問題 我想是你建立編譯環境的時候出的錯誤 從頭重新生成一個新的空白源程序 再寫進去應該就沒問題了
F. C語言程序編譯成功了,為什麼連接還出錯
1 編譯階段,執行的是對單個文件的轉換,從源代碼轉換成二進制文件。
2 鏈接階段,將每個源文件轉成的二進制文件,及相關的系統庫文件共同打包生成可執行文件。
3 從定義上可以看出,鏈接階段,出現錯誤有兩種可能:
1) 函數中引用了不存在的函數。
2) 編譯環境有問題,導致ld出錯。
G. 為什麼C語言程序編譯正確但不能執行
因為你的c沒有初值,while循環無法進行。另外你的演算法也有問題,while循環可改為while (m % n != 0),循環結束後最小公約數時n。
H. C語言編譯成功但生成失敗,先前明明可執行,一下子就有錯誤了
1編譯階段,執行的是對單個文件的轉換,從源代碼轉換成二進制文件。2鏈接階段,將每個源文件轉成的二進制文件,及相關的系統庫文件共同打包生成可執行文件。3從定義上可以看出,鏈接階段,出現錯誤有兩種可能:1)函數中引用了不存在的函數。2)編譯環境有問題,導致ld出錯。
I. C語言程序問題,編譯成功可卻不能運行,這是為什麼
如果你的循環中的i值變化范圍沒有問題,則修改你的數組定義為:double err[502],B,W[502],W2[502],j,beta[501];你的原始定義都少了一個數組元素,會導致下標越界,進而引發運行時錯誤。