Не могу понять, почему мое значение дисплея всегда равно 0

Программа преобразования Кельвина в C или F, которая использует функции для нашей лаборатории. Я не могу понять, почему я получаю 0 в качестве результата. Я думаю, что это как-то связано с тем, как я передал / вернул значения. Возможно, я не поймал возвращение?

#include <stdio.h>
#include <ctype.h>float KtoC(float kel)
{
kel = - 273;

return(kel);
}

float KtoF(float kel)
{
kel = (9 * kel / 5) + 32;

return(kel);
}

float GetKelvin(float kel)
{
printf("Temperature Conversion Program\n");
printf("Please enter a temperature in Degrees Kelvin:");
scanf("%f%*c", &kel);

return(kel);
}

char GetConvType(char &ctype)
{
do
{
printf("Convert to Celcius (c) or Fahrenheit (f): ");
scanf("%c%*c", &ctype);

ctype = tolower(ctype);

} while(ctype != 'c' && ctype != 'f');

return(ctype);
}

float GetConvTemp(float kel)
{
char ctype;

ctype = GetConvType(ctype);

if(ctype == 'c')
{
return (KtoC(kel));
}
else
{
return (KtoF(kel));
}
}

void DisplayResults(float x)
{
printf("This is the temp converted %f", x);

return;
}int main()
{
float kel, x;
char ctype;

GetKelvin(kel);
GetConvType(ctype);
GetConvTemp(kel);
DisplayResults(kel);

return(0);

}

0

Решение

--- xorg.cpp    2017-05-19 00:48:56.000000000 +0900
+++ x.cpp   2017-05-19 00:50:23.000000000 +0900
@@ -4,19 +4,19 @@

float KtoC(float kel)
{
-   kel = - 273;
+   kel -= 273.0;

return(kel);
}

float KtoF(float kel)
{
-   kel = (9 * kel / 5) + 32;
+   kel = (9.0 * KtoC(kel) / 5.0) + 32.0;

return(kel);
}

-float GetKelvin(float kel)
+float GetKelvin(float &kel)
{
printf("Temperature Conversion Program\n");
printf("Please enter a temperature in Degrees Kelvin:");
@@ -39,7 +39,7 @@
return(ctype);
}

-float GetConvTemp(float kel)
+float GetConvTemp(float &kel)
{
char ctype;

@@ -71,8 +71,7 @@

GetKelvin(kel);
GetConvType(ctype);
-   GetConvTemp(kel);
-   DisplayResults(kel);
+   DisplayResults(GetConvTemp(kel));

return(0);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]