Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Przelicznik odległości z KM na inne

Ostatnio zmodyfikowano 2021-11-07 21:29
Autor Wiadomość
Dzemu
Temat założony przez niniejszego użytkownika
Przelicznik odległości z KM na inne
» 2021-10-12 15:31:55
Witam, muszę napisać program wczytujący z klawiatury liczbę zmiennoprzecinkową oznaczającą odległość w metrach, a następnie wyświetlający na ekranie odległość przeliczoną na cale, stopy, jardy, mile lądowe i mile morskie. Współczynniki konieczne do przeliczenia jednostek odległości zadeklarować w programie w postaci stałych.
Utknąłem (mam nadzieję) na etapie końcowym czyli wypisaniu ile dajmy na to 1 metr wynosi w danej jednostce.
Oto kod:
C/C++
#include <iostream>

int main()
{
   
const float dystansMILELADOWE = 1609;
   
const float dystansCALE = 39.3;
   
const float dystansSTOPY = 3.2;
   
const float dystansJARDY = 1.09;
   
const float dystansMILEMORSKIE = 1852;
   
float MilaLadowa;
   
float Cal;
   
float Jard;
   
float MilaMorska;
   
float dystansM;
   
   
printf( "%s", "Podaj dystansM: " );
   
scanf( "%f", "dystansM" );
   
MilaLadowa = dystansM * dystansMILELADOWE;
   
Cal = dystansM * dystansCALE;
   
Jard = dystansM * dystansJARDY;
   
MilaMorska = dystansM * dystansMILEMORSKIE;
   
printf( "Odległosc w Milach Ladowych %.1f", MilaLadowa );
}
P-179010
DejaVu
» 2021-10-12 15:58:10
Poczytaj jak się używa scanf-a, bo użyłeś go źle.
P-179011
Dzemu
Temat założony przez niniejszego użytkownika
» 2021-10-12 16:23:32
C/C++
int main()
{
   
const float dystansMILELADOWE = 1609;
   
const float dystansCALE = 39.3;
   
const float dystansSTOPY = 3.2;
   
const float dystansJARDY = 1.09;
   
const float dystansMILEMORSKIE = 1852;
   
float MilaLadowa;
   
float Cal;
   
float Jard;
   
float MilaMorska;
   
float dystansM;
   
   
printf( "%s", "Podaj dystansM: " );
   
scanf( "%d", & dystansM );
   
MilaLadowa = dystansM * dystansMILELADOWE;
   
Cal = dystansM * dystansCALE;
   
Jard = dystansM * dystansJARDY;
   
MilaMorska = dystansM * dystansMILEMORSKIE;
   
printf( "Odleglosc w Milach Ladowych: %d \n", MilaLadowa );
   
printf( "Odleglosc w Calach: %d \n", Cal );
   
printf( "Odleglosc w Jardach: %d \n", Jard );
   
printf( "Odleglosc w Milach Morskich: %d \n", MilaMorska );
}
Poprawione ale wychodzi wszędzie 0
P-179012
DejaVu
» 2021-10-12 16:43:48
%d to int, a nie float, więc źle wczytuje Ci wartość do zmiennej.
P-179013
pekfos
» 2021-10-12 18:17:18
%d to int, a nie float, więc źle wczytuje Ci wartość do zmiennej.
To dotyczy również printf(), powinno być %f przy wprowadzaniu i wypisywaniu danych.

Swoją drogą, pierwszy kod dołącza <iostream>, więc czemu scanf() i printf()? Odpowiedniki z C++ nie wymagają podawania dokładnych typów.
» Kurs C++» Poziom 1Obsługa strumienia wejściowego lekcja
P-179015
madpl1239
» 2021-11-07 21:29:07
Ja bym to zrobił tak:

C/C++
/*
 * main.cpp
 *
 * konwersje jednostek
 */
#include <iostream>

int main()
{
   
const float dystansMILELADOWE = 1609.0f;
   
const float dystansCALE = 39.3f;
   
const float dystansSTOPY = 3.2f;
   
const float dystansJARDY = 1.09f;
   
const float dystansMILEMORSKIE = 1852.0f;
   
   
float MilaLadowa = 0.0f;
   
float Cal = 0.0f;
   
float Jard = 0.0f;
   
float MilaMorska = 0.0f;
   
float dystansM = 0.0f;
   
   
// wczytywanie  
   
std::cout << "Podaj dystansM: ";
   
std::cin >> dystansM;
   
   
// obliczenia
   
MilaLadowa = dystansM * dystansMILELADOWE;
   
Cal = dystansM * dystansCALE;
   
Jard = dystansM * dystansJARDY;
   
MilaMorska = dystansM * dystansMILEMORSKIE;
   
   
// wypisanie wynikow
   
std::cout << "Odleglosc w Milach Ladowych: " << MilaLadowa << "\n";
   
std::cout << "Odleglosc w Calach: " << Cal << "\n";
   
std::cout << "Odleglosc w Jardach: " << Jard << "\n";
   
std::cout << "Odleglosc w Milach Morskich: " << MilaMorska << "\n";
   
   
return 0;
}

pozdrawiam
P-179044
« 1 »
  Strona 1 z 1