Error in printf line,,,what's wrong?
Hi all!
I need help for the following code. When I try to compile it, the program blocks the line printf (" kA(T2-T1) \n") .
I don't understand what's wrong with that line.
Also, I don't know whether I use variable "counter" the right way. The idea is to count the input from the user. If it's not 5, that means one must be 0 (the one with the question mark inputted), and thus will go to the respective function. But if it's 5, the user must input again the data. At this point I don't understand how to loop it back to the first 6 steps (inquiring input from user).
Anyone,,please help me with this.
Thank you so much before. ^^
Code:
/* This program is used to solve simple conduction problems using various forms of the formula*/
#include <stdio.h> /* define printf and scanf */
#include <math.h> /* define mathematical operations */
double calc_h (double coef, double thickness, double area, double temp1, double temp2) ; /* define function named calc_k */
double calc_k (double heat_rate, double thickness, double area, double temp1, double temp2) ; /* define function named calc_k */
double calc_a (double heat_rate, double thickness, double coef, double temp1, double temp2) ; /* define function named calc_a */
double calc_x (double heat_rate, double coef, double area, double temp1, double temp2) ; /* define function named calc_x */
double calc_t2 (double heat_rate, double thickness, double area, double temp1, double coef) ; /* define function named calc_t1 */
double calc_t1 (double heat_rate, double thickness, double area, double coef, double temp2) ; /* define function named calc_t2 */
main()
{
/* define variables that will be used */
double heat_rate ;
double coef ;
double area ;
double temp1 ;
double temp2 ;
double thickness ;
int counter ;
/* mention the background and the purpose of the program */
printf ("Respond to the the prompts with the data known, \n") ;
printf ("Unknown quantity, enter a question mark (?). \n") ;
printf ("Rate of heat transfer (unit = watts) ---> \n") ;
scanf ("%lf",&heat_rate) ;
printf ("Coefficient of thermal conductivity (unit = W/m-K) ---> \n") ;
scanf ("%lf",&coef) ;
printf ("Cross sectional area of conductor (unit = m^2) ---> \n") ;
scanf ("%lf",&area) ;
printf ("Temperature on the first side (unit = Kelvin) ---> \n") ;
scanf ("%lf",&temp1) ;
printf ("Temperature on the second side (unit = Kelvin) ---> \n") ;
scanf ("%lf",&temp2) ;
printf ("Thickness of conductor (unit = m) ---> \n") ;
scanf ("%lf",&thickness) ;
counter = scanf ("%lf %lf %lf %lf %lf %lf", &heat_rate, &coef, &area, &temp1, &temp2, &thickness) ;
if (counter == 0)
{
if(heat_rate == 0)
{
calc_h (coef, thickness, area, temp1, temp2) ;
}
else if (coef == 0)
{
calc_k (heat_rate, thickness, area, temp1, temp2) ;
}
else if (area == 0)
{
calc_a (heat_rate, thickness, coef, temp1, temp2) ;
}
else if (temp1 == 0)
{
calc_t1 (heat_rate, thickness, area, coef, temp2) ;
}
else if (temp2 == 0)
{
calc_t2 (heat_rate, thickness, area, temp1, coef) ;
}
else
{
calc_x (heat_rate, coef, area, temp1, temp2) ;
}
}else
{
printf ("Invalid input! You must input a question mark for the unknown variable. \n") ;
}
}
printf (" kA (T2-T1) \n") ;
printf (" H = ------------ \n") ;
printf (" x \n") ;
printf ("H = %lf W T2 = %lf K" ,heat_rate, temp2) ;
printf ("k = %lf W/m-K T1 = %lf K", coef, temp1) ;
printf ("A = %lf m^2 x = %lf m" , area, thickness) ;
system ("PAUSE") ;
return 0 ;
}
/* function named calc_k, used to calculate the coefficient of thermal conductivity */
double calc_k (double heat_rate, double thickness, double area, double temp1, double temp2)
{
return ((heat_rate*thickness)/(area*(temp2-temp1))) ;
}
/* function named calc_a, used to calculate the cross sectional area */
double calc_a (double heat_rate, double thickness, double coef, double temp1, double temp2)
{
return ((heat_rate*thickness)/(coef*(temp2-temp1))) ;
}
/* function named calc_x, used to calculate the thickness of the conductor */
double calc_x (double heat_rate, double coef, double area, double temp1, double temp2)
{
return ((coef*area*(temp2-temp1))/heat_rate) ;
}
/* function named calc_h, used to calculate the rate of heat transfer */
double calc_h (double coef, double thickness, double area, double temp1, double temp2)
{
return ((coef*area*(temp2-temp1))/thickness) ;
}
/* function named calc_t2, used to calculate the temperature on the second or furthest side of the conductor */
double calc_t2 (double heat_rate, double thickness, double area, double temp1, double coef)
{
return (((heat_rate*thickness)/(coef*area))+temp1) ;
}
/* function named calc_t1, used to calculate the temperature on the first or nearest side of the conductor */
double calc_t1 (double heat_rate, double thickness, double area, double coef, double temp2)
{
return (temp2-((heat_rate*thickness)/(coef*area))) ;
}