2017-01-21 2 views
0

J'ai écrit le code suivant. son entrer essentiellement 5 variables (a, b, c, f_a, F_B) et calculer f_c = f_a + (F_B-f_a) * (ca)/(ba)[noob] comment créer deux fonctions où deuxième faire le calcul?

dans la fonction principale, i déclarée et balayage toutes les variables, alors je calcule le X, qui est égal à f_c.

La question est comment puis-je déplacer le calcul de X à la deuxième fonction calculateFreezingTemp.

J'ai essayé de créer une fonction f_c avec 5 variables, a échoué.

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

"Failed"? S'il vous plaît élaborer. Qu'avez-vous fait exactement, et qu'est-ce qui s'est mal passé? – Carcigenicate

+0

Pouvez-vous élaborer sur ce qui a échoué, ajouter nous dire dans votre question ce que vous essayez d'atteindre. – Vishnu667

+0

trop de variables dans calculateFreezingTemp (double x), – user133174

Répondre

0

Vous pouvez transmettre les variables d'entrée à la fonction 'calculateFreezingTemp':

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

et déplacer le calcul dans la fonction:

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

il est dit trop d'arguments à la fonction calculateFreezingTemp – user133174

+0

C'est parce que vous devez ajuster la ligne où vous déclarez d'abord la fonction ... changez la première ligne en: 'calculateFreezingTemp (double a, double b, double c, double f_a, double f_b); ' –