将变量result从一个方法调用到另一个方法以在c中使用



在学校,我必须做一个程序,计算一些数字在不同的方法,不同的方法是相互关系的一个变量。这是我的一部分代码。

int pythagoras(double a, double b){

double a2;
double b2;
double c2;
double c =0.0;
double wurzelc;

a2 = pow(a,2);
b2 = pow(b,2);
c2 = a2 + b2;
c = a + b;
wurzelc = sqrt(c2);

printf("a: %2.2f, a Quadrat: %2.2f n",a, a2);
printf("b: %2.2f, b Quadrat: %2.2f n",b, b2);
printf("c: %2.2f, c Quadrat: %2.2f, c Wurzel: %2.2f n",c, c2, wurzelc);

return 0;
}

int konvertradius(){

double r2;
double kflaeche;
/*double r = 6.1;*/     
double r = c;       //c is from "int pythagoras()"
r2 = pow(r,2);
kflaeche = M_PI * r2;
printf("Kreisradius: %2.2f Flaecheninhalt:  %2.2f n",r, kflaeche);
return 0;
}
int main(){

pythagoras(1.9, 4.2);
konvertradius();

return 0;
}

,现在我的问题,我怎样才能得到变量"c"的结果进入方法"konvertradius()"

p。学生:我不允许使用set和get。

不。
在执行另一个函数时,pythagoras()中的局部变量c不存在。

要使该变量存在并具有任何值,您必须调用该函数。但是当它返回时,变量已经不再存在了。

您可以做的是将代码(计算c)移动到返回求和结果的辅助函数中。然后,可以从您希望在其中使用该计算的两个函数中调用该辅助函数。

double helper(double a, double b)
{
return a + b ;
}
int pythagoras(double a, double b)
{
double a2;
double b2;
double c2;
double c =0.0;
double wurzelc;

a2 = pow(a,2);
b2 = pow(b,2);
c2 = a2 + b2;
c = helper(a,b);
wurzelc = sqrt(c2);
printf("a: %2.2f, a Quadrat: %2.2f n",a, a2);
printf("b: %2.2f, b Quadrat: %2.2f n",b, b2);
printf("c: %2.2f, c Quadrat: %2.2f, c Wurzel: %2.2f n",c, c2, wurzelc);

return 0;
}
int konvertradius(double a, double b)
{
double r2;
double kflaeche;
/*double r = 6.1;*/     
double r = helper(a,b);       //c is from "int pythagoras()"
r2 = pow(r,2);
kflaeche = M_PI * r2;
printf("Kreisradius: %2.2f Flaecheninhalt:  %2.2f n",r, kflaeche);
return 0;
}
int main(void)
{
pythagoras(1.9, 4.2);
konvertradius(1.9, 4.2);
return 0;
}
如您所见,这反过来又要求您向第二个函数提供输入数据。因为没有"使用相同的值",你知道我指的是哪个。
(跳过函数内部静态变量的讨论,它对不同的函数没有帮助…)

相关内容

  • 没有找到相关文章

最新更新