Przechowuj dane wejściowe użytkownika w zmiennej
Zastanawiałem się, jak mogę zachęcić użytkownika końcowego mojego programu do wprowadzenia wartości, którą chcą przekonwertować z Fahrenheita na Celsjusza na C.
Zasadniczo, ponieważ jestem kompletnym n00b i piszę niesamowite "programy" takie jak ten:
//Simple program to convert Fahrenheit to Celsius int main (int argc, char *argv[])
{
double celsius, fahrenheit, resu< celsius = resu<
fahrenheit = 27;
result = (fahrenheit - 32)/1.8; printf("27 degress Fahrenheit is %g degrees Celsius!", result); return 0;
}
Chciałbym dodać do tego rzeczywistą "funkcjonalność", jeśli wiesz, o co mi chodzi. Zamiast robić z niego program testowy, w którym tak naprawdę demonstruje prostą arytmetyczną ocenę wyrażenia, chciałbym uczynić go nieco użytecznym.
W każdym razie zastanawiałem się, czy mogę użyć wskazanej funkcji
strona podręcznika scanf (3)
http://developer.apple.com/mac ... .html
aby pomóc mi w rozpoznawaniu danych wejściowych użytkownika, a następnie w jakiś sposób przechowywać je w zmiennej Fahrenheita.
Teraz byłoby naprawdę fajnie, gdyby program po uruchomieniu mógł podpowiedzieć użytkownikowi końcowemu, czy chce przejść z Celsjusza do Fahrenheita lub z Fahrenheita do Celsjusza, ale zróbmy to krok po kroku i czekam, aż przeczytam rozdział w mojej książce o „podejmowaniu decyzji”! :)
UPDATE
:
Usuwa bezużyteczny wynik zmiennej, jak wskazał kiamlaluno:
//Simple program to convert Fahrenheit to Celsius int main (int argc, char *argv[])
{
double fahrenheit, celsius; fahrenheit = 27;
celsius = (fahrenheit - 32)/1.8; printf("27 degress Fahrenheit is %g degrees Celsius!", celsius); return 0;
}
AKTUALIZACJA
:
Próbowałem zawrzeć wszystkie pomocne sugestie zamieszczone tutaj, ale mam więcej problemów z moim kodem:
//Simple program to convert Fahrenheit to Celsius and Celsius to Fahrenheitint main (int argc, char *argv[])
{
int celsius, fahrenheit, celsiusResult, fahrenheitResu<
celsiusResult = (fahrenheit - 32)*(5/9);
fahrenheitResult = (celsius*(9/5)) + 32;
int prompt;printf("Please press 1 to convert Fahrenheit to Celsius, or 0 to convert Celsius to Fahrenheit please:\n ");
scanf("%i", &prompt);
if(prompt == 1) {
printf("Please enter a temperature in Fahrenheit to be converted into Celsius!:\n");
scanf("%i", &fahrenheit);
printf("%i degress Fahrenheit is %i degrees Celsius!", fahrenheit, celsiusResult);}
else {
printf("Please enter a temperature in Celsius to be converted into Fahrenheit:\n");
scanf("%i", &celsius);
printf("%i degreses Celsius is %i degrees Fahrenheit", celsius, fahrenheitResult);
}return 0;
}
Wszystko działa dobrze, z wyjątkiem samych obliczeń, które okazują się całkowicie błędne.
Przez chwilę myślałem, że może to być spowodowane tym, że zmieniłem same liczby na typy całkowite, ale ponownie je podwoiłem i nadal było to trochę dziwne.
jakieś pomysły?
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
4 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
Należy zauważyć, że w ogóle nie obsługuje to nieliczbowych danych wejściowych. Będziesz musiał użyć innych metod wprowadzania.
[edytować]
Oczywiście dokonujesz skoków w swoim kodzie i wygląda na to, że robisz duże postępy. :)
Jest kilka problemów, które wymagają rozwiązania ostatniej aktualizacji. Twój kod tak naprawdę nic nie oblicza, formuła została zastosowana zbyt wcześnie. Musisz poczekać, aż lub uzyskają znaczące wartości (to znaczy po wprowadzeniu przez użytkownika wartości do konwersji). Fajnie byłoby przenieść te formuły do funkcji w celu wykonania konwersji. Powinieneś także trzymać się podwójnych, a nie całkowitych. Nie uzyskasz wymaganej precyzji, używając liczb całkowitych.
Anonimowy użytkownik
Potwierdzenie od:
Jeśli chodzi o pytanie użytkownika, czy chce Celsjusza czy Fahrenheita, potrzebujesz czegoś, co nazywa się oświadczeniem A if i jeszcze oświadczeniem.
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od: