當前位置:編程學習大全網 - 編程語言 - 海倫談論編程。

海倫談論編程。

妳剛學過C吧?看來變量的作用域、命名、命令都需要加強。

這三個函數都有錯誤:

先看妳的程序,好像妳想在各種函數中使用變量S作為全局變量,但是變量沒有定義。(那個主函數裏的s是大寫的,和這個沒關系。)

第二,變量名與函數名壹致。如果S是壹個全局變量,那麽它與函數s(float,float,float)的命名是重復的。編譯器無法確定同名是函數還是變量,無法編譯。同時,在函數區(float,float,float)中,有壹個變量區,用來尋找面積。

第三,主函數中的語法和邏輯錯誤。

程序的初衷是在計算面積之前判斷三邊是否滿足形成三角形的條件。但是:

1.事實上,這裏應該使用if語句,而不是循環;

2.即使采用循環,在邏輯上也是錯誤的:根據妳的程序,只要滿足條件(兩邊之和大於第三邊),就會繼續循環,除非不符合的壹方退出,否則這個程序無法計算出正確的結果。

雖然下面的改動盡量按照原程序進行,但壹般來說,不建議使用全局變量,因為用多了程序的可移植性會受到很大影響。

綜上所述,程序及以下改動(在保證正確性的情況下盡量不要改動原程序):

# include & ltstdio.h & gt

# include & ltmath.h & gt

float s;

void main()

{浮動區(浮動a,浮動b,浮動c);

浮點a,b,c,S;

scanf("%f %f %f ",& amp壹,& ampb & amp;c);

if(a+b & gt;c & amp& ampa+c & gt;b);

s =面積(a,b,c);}

}

浮動區域(浮動a、浮動b、浮動c)

{

浮點ss(浮點a、浮點b、浮點c);

浮動區;

s=ss(a,b,c);

area = sqrt(s *(s-a)*(s-b)*(s-c));

printf("area=%f ",area);

返回區域;

}

浮子ss(浮子a、浮子b、浮子c)

{

s =(a+b+c)* 0.5;

返回s;

}

  • 上一篇:計算機專業女生學好學嗎?
  • 下一篇:如何安裝CUDA
  • copyright 2024編程學習大全網