2017-01-21 43 views
0

我写了下面的代码。 其基本上进入5个变量(A,B,C,F_A,f_b) 和计算F_C = F_A +(f_b-F_A)*(CA)/(BA)[noob]如何在第二个计算中创建两个函数?

在主函数

,我声明和扫描所有变量, 然后我计算X,它等于f_c。

问题是如何将X的计算移动到第二个函数calculateFreezingTemp。

我试着用5个变量创建一个函数f_c失败。

double calculateFreezingTemp(double); 

int main(void) 
{double a, f_a, b, f_b, c, f_c, x; 

printf("Please enter the data point A\n"); 
scanf("%lf %lf", &a, &f_a); 

printf("Please enter the data point B\n"); 
scanf("%lf %lf", &b, &f_b); 

printf("Please enter the salinity value between %f and %f\n", a, b); 
scanf("%lf", &c); 

x = f_a + ((c-a)/(b-a))*(f_b-f_a); 

f_c = calculateFreezingTemp(x); 

printf("For salinity %f ppt, Freezing Temperature is: %f\t",c, f_c);} 

double calculateFreezingTemp(double x) 
{double f_c; 

f_c=x; 

return(f_c); 

} 
+0

“失败”?请详细说明。你究竟做了什么,究竟发生了什么错误? – Carcigenicate

+0

您能详细说明失败的原因吗,请在您的问题中告诉我们您要实现的目标。 – Vishnu667

+0

calculateFreezingTemp(double x)中的变量太多, – user133174

回答

0

您可以通过输入变量 'calculateFreezingTemp' 功能:

f_c = calculateFreezingTemp(a, b, c, f_a, f_b) 

和移动计算进入功能:

double calculateFreezingTemp(double a, double b, double c, double f_a, double f_b) 
{ 
    return f_a + (f_b-f_a)*(c-a)/(b-a); 
} 
+0

它说太多的功能参数calculateFreezingTemp – user133174

+0

这是因为你必须调整你第一次宣布函数的行... 改变第一行为:'calculateFreezingTemp(double a,double b,double c,double f_a,double f_b);' –

相关问题