正如您在下面的代码中看到的,我得到了一些全局变量。我的问题是,来电Ul()
(由calc()
完成)不会影响原始变量,会将其值保持为零。
你有什么想法吗?
我正在使用C编程语言!
double Iges;
double Ul;
double Ir6;
double Ur6;
double Ub;
double R1, R2, R3, R4, R5, RL;
double R6;
#include <stdio.h>
#define DEBUG 1
double Iges_ ();
double Ul_();
double Ir6_();
double Ur6_();
double RL_();
double calc();
int main()
{
Iges=Ul=Ir6=Ur6=Ub=0;
R1=R2=R3=R4=R5=0;
Ub=65;
R1=100;
R2=100;
R3=100;
R4=100;
R5=200;
R6=200; // Falls ich es vergesse...
printf("Starte Hausaufgaben Berechnung\n");
calc();
printf("Iges = %.3lf\n", Iges);
printf("R1=%.3lf; R2=%.3lf; R3=%.3lf; R4=%.3lf; R5=%.3lf\n",R1, R2, R3, R4, R5);
printf("Rges = %.3lf (RL=%.3lf; R1=%.3lf; R3=%.3lf)\n\n", RL+R1+R3,RL, R1, R3);
printf("Ul=%.3lf\n",Ul);
printf("Maximale Leistung (PR6=%.3lf) bei R6=%.3lf\n", Ur6*Ir6, R6);
}
double calc()
{
RL = RL_();
Iges = Iges_();
Ul = Ul_();
Ir6 = Ir6_();
}
inline double RL_()
{
*&RL = (R5*(R2+R6+R4)) / (R5+R2+R6+R4);
printf("\t[CALC]\t[RL]\t[%.3lf]\n",RL);
}
inline double Iges_()
{
Iges = Ub/(R1+R3+RL);
printf("\t[CALC]\t[Iges]\t[%.3lf]\n",Iges);
return Iges;
}
inline double Ul_()
{
Ul = Iges * RL;
printf("\t[CALC]\t[UL]\t[%.3lf]\n",Ul);
return Ul;
}
inline double Ir6_()
{
Ir6 = Ul / (RL+R6+R4);
printf("\t[CALC]\t[IR6]\t[%.3lf]\n",Ir6);
return 0;
}
inline double Ur6_()
{
printf("\t[CALC]\t[UR6]\t[%.3lf]\n",Ur6);
return 0;
}
答案 0 :(得分:1)
您没有从RL_()
返回任何内容,在return RL;
RL_