Zmiana stopni Celsjusza na Fahrenheit
Ostatnio zmodyfikowano 2016-01-09 00:05
PrzemekPrzemas Temat założony przez niniejszego użytkownika |
Zmiana stopni Celsjusza na Fahrenheit » 2016-01-08 19:40:13 Za każdym razem zwraca mi w wyniku 1, dlaczego?
#include <iostream>
int fahrenheit(int); int celsius(int); int main() { using namespace std; int celsius; cout << "Podaj stopnie celsjusza: "; cin >> celsius; cout << "W stopniach fahrenheit to: " << fahrenheit << endl; return 0; }
int fahrenheit(int celsius) { return 1.8 * celsius + 32.0; }
|
|
PrzemekPrzemas Temat założony przez niniejszego użytkownika |
» 2016-01-08 20:16:32 Rozwiązałem:
#include <iostream>
int main() { using namespace std; int cel; cout << "Podaj temperature w stopniach celsjusza: "; cin >> cel; double fahrenheit; fahrenheit = 1.8 * cel + 32.0; cout << "W stopniach Fahrenheit wynosi: " << fahrenheit << endl; } |
|
Razner |
» 2016-01-08 20:28:34 Gdybyś chciał wiedzieć dlaczego ci poprzedni nie działał to źle wywołałeś funkcje fahrenheit i powinieneś ją zadeklarować jako double :) Dodatkowo funkcja Celsjusz jest zbędna. Ponad to using namespace std powinno być zaraz po #include |
|
PrzemekPrzemas Temat założony przez niniejszego użytkownika |
» 2016-01-08 20:47:01 Też tak myślałem, ale siedziałem nad tym zadaniem od około godziny i okazało się, że można to całkowicie prościej zrobić.
Przykład tego zadania z innej strony:
#include <iostream>
double fahr(double celc);
int main() { using namespace std; cout << "Podaj temperature w stopniach Celciusza: "; double celciusz; cin >> celciusz; cout << celciusz << " stopni Celciusza to " << fahr(celciusz) << " stopni Fahrenheita." << endl; return 0; }
double fahr(double celc) { return 1.8 * celc + 32.0; }
Rozwiązałem je nieco inaczej, czy mimo to, że działa jest ono poprawnie rozwiązane? Szczerze mówiąc powyższy przykład wydaje mi się znacznie rozbudowany ale czy jest sens takiego pisania? W powyższym przykładzie main wywoływane jest przez instrukcję double fahr znajdującą się poniżej pierwszej instrukcji. |
|
Razner |
» 2016-01-08 21:19:51 Moim zdaniem rozwiązałeś poprawnie jednak nawet przy tak małych programikach zawsze uczono (przynajmniej mnie) żeby robić funkcje dla każdej czynności jaką wykonuje program. Jeśli się mylę niech ktoś bardziej doświadczony się wypowie. Jedyny błąd (lub uchybienie bo mimo to program działa) jaki zauważyłem był właśnie w using namespace std użyłeś tego tylko w funkcji main a powinieneś globalnie i gdybyś w innej funkcji chciał użyć cout byś musiał dodać przedrostek std:: na dłuższą metę jest to męczące |
|
Monika90 |
» 2016-01-08 21:46:04 Drogie dzieci, unikajcie globalnej dyrektywy using namespace, w szczególności w plikach nagłówkowych. |
|
PrzemekPrzemas Temat założony przez niniejszego użytkownika |
» 2016-01-08 22:04:36 Monika wiem o tym czytałem. Mam książkę Praty gdzie pisze o tym, ale dopiero przerabiam pierwszy rozdział i robię według tego jak jest tam zapisane natomiast patrzyłem na dalsze rozdziały i using jest inaczej definiowane. |
|
Green_Arrow |
» 2016-01-08 22:18:37 Nie jestem programistą, ale zrobił bym to tak: #include <iostream> void fat(); using namespace std; double c = 0; main() { cout << endl << "Podaj temperature w stopniach C: "; cin >> c; cin.clear(); cin.ignore( 1000, '\n' ); fat(); cout << "W stopniach fatherhainta jest to: " << c << endl << endl; } void fat() { if( c ) c = c * 1.8 + 32; else cout << endl << "Wprowadziles bledne dane." << endl; } |
|
« 1 » 2 |