Nie potrafię poprawnie wykonać zadania z książki Język C, Szkoła Programowania, Stephena Prata Wydanie VI z rozdziału 5 zadanie 9. Proszę o pomoc.
Napisz program, który pobiera wartość temperatury w stopniach Farenheita. Program powinien pobierać wartość typu double i pokazywać ją(jako argument) własnej funkcji użytkownika o nazwie Temperatura(). Funkcja ta powinna obliczyć odpowiednią wartość w skalach Celsjusza i Kelwina, a następnie wyświetlić wszystkie trzy wartości ze skali. Oto formuła zamieniająca stopnie w skali Farenheita na stopnie w skali Celsjusza:
Celsjusz = 5.0 / 9.0 * (Farenheit - 32.0)
Kelwin = Celsjusz + 273.16
Funkcja Temperatura() powinna używać słowa kluczowego const dla symboli reprezentujących stałe występujące w powyższych formułach. Natomiast main() powinna stosować pętle, aby umożliwić użytkownikowi wielokrotne zastosowanie funkcji konwertującej. Pętla kończy swój cykl, gdy użytkownik wprowadzi zamiast temperatury literę lub inną wartość nie będącą liczbą. Wykorzystaj fakt, że funkcja scanf() zwraca liczbę wczytanych elementów , więc zwróci 1 po wczytaniu liczby, ale nie zwróci 1, kiedy użytkownik wpisze np k. Do porównania wartości zwracanej przez scanf() z 1 użyj operatora porównania ==.
#include <stdio.h>
Temperatura(double n);
int main(void)
{
double Farenheit;
printf("Podaj jaka jest temperatura w st. Farenheita: ");
scanf("%f", &Farenheit);
while(Farenheit == 1)
Temperatura(Farenheit);
return 0;
}
Temperatura(double n)
{
const double Celsjusz, Kelwin;
Celsjusz = 5.0 / 9.0 * (n - 32.0);
Kelwin = Celsjusz + 273.16;
printf("Jest to %.2f stopni Celsjusza\n", Celsjusz);
printf("Jest to %.2f stopni Kelwina\n", Kelwin);
printf("Jest to %.2f stopni Farenheita\n", n);
}