2012-06-24 68 views
-2

我所著在C ACODE爲我的單如何在C編寫一個函數

#include <stdio.h> 


void hallo(double); 

int main(void) 
{ 

double radius=0; 
double umfang=0; 
double flaeche=0; 


printf("\n Kreisberechnung\n ===============\n"); 
printf("\nDieses Programm berechnet Umfang und Flaeche" 
"\neines Kreises aus einem Radius.\n"); 


printf("Bitte Radius eingeben: "); 

scanf("%lf", &radius); 

hallo(); 

return 0; 
} 



void hallo(double radius) 
{ 
umfang = 2.0 * radius * 3.14159265359; 
flaeche = radius * radius * 3.14159265359; 

printf("\nMit Radius = %lf cm wird\n", radius); 
printf("der Kreisumfang = %lf cm und\n", umfang); 
printf("die Kreisflaeche = %lf qcm.\n", flaeche); 

/* getchar(); */ 
scanf("%lf", &radius); 

} 

,但我必須在函數聲明錯誤

void hallo(double); 

誤差

太少的參數... 我相信其餘的代碼是正確的,錯誤在那裏;你能幫助我

+2

您已經聲明'hallo'取一個參數,但你可以把它叫做沒有提供任何參數。 –

回答

8

你已經宣佈hallo採取double類型的參數,但你沒有參數調用它。

hallo(); 

錯誤信息非常明確。你確實從用戶那裏獲得了半徑,但是你從不使用它。您需要使用:

hallo(radius); 

還請注意,你不執行任何錯誤您的來電scanf後檢查。

3

當您呼叫hallo();在第23行,你沒有給出任何參數,可能是傳遞給它的半徑。

另外,在第32行和第33行,你沒有指定類型,所以你得到一個undeclard錯誤。

我得到了代碼編譯以下幾個變化波紋管。

#include <stdio.h> 


void hallo(double); 

int main(void) 
{ 

double radius=0; 
double umfang=0; 
double flaeche=0; 


printf("\n Kreisberechnung\n ===============\n"); 
printf("\nDieses Programm berechnet Umfang und Flaeche" 
"\neines Kreises aus einem Radius.\n"); 


printf("Bitte Radius eingeben: "); 

scanf("%lf", &radius); 

hallo(radius); 

return 0; 
} 



void hallo(double radius) 
{ 
double umfang = 2.0 * radius * 3.14159265359; 
double flaeche = radius * radius * 3.14159265359; 

printf("\nMit Radius = %lf cm wird\n", radius); 
printf("der Kreisumfang = %lf cm und\n", umfang); 
printf("die Kreisflaeche = %lf qcm.\n", flaeche); 

/* getchar(); */ 
scanf("%lf", &radius); 

} 

這是對鍵盤在http://codepad.org/SDpXztrQ