2012-06-24 37 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