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

Głupi problem ze zmienną

Ostatnio zmodyfikowano 2013-04-01 16:58
Autor Wiadomość
Bajt
Temat założony przez niniejszego użytkownika
Głupi problem ze zmienną
» 2013-04-01 16:48:22
Witam

Dla rozrywki piszę program zamieniający milimetry na centymetry itd. I natknąłem się na taki problem, że gdy wpisuje wartość milimetrów do przeliczenia na centymetry w centymetrach zawsze pojawia mi się 1, a w pozostałych wynikach 0. Wiem, że chodzi tutaj o konflikt rodzajów zmiennych i że wystarczyłoby zrobić rzutowanie, ale jednak daję kod źródłowy pliku, wraz z zmiennymi. ( plik nie jest kompletny albowiem program liczy 400 linijek).

C/C++
#include <iostream>
#include <Windows.h>
#include <cstdlib>
#include <conio.h>

using namespace std;

//zmienne
unsigned int dlugosc;
unsigned int wybor;
unsigned int wybor_jednostki;
unsigned int czas;
double milimetry;
float minuty, godziny, dni;
double minuty_na_sekundy;
float minuty_na_godziny;
float godziny_na_sekundy, godziny_na_minuty, godziny_na_dni;
float dni_na_sekundy, dni_na_minuty, dni_na_godziny;
double milimetry_na_centymetry, milimetry_na_decymetry, milimetry_na_metry, milimetry_na_kilometry;
int dni_na_doby;
unsigned int dni1;

dalsza czesc
switch( dlugosc )
{
case 1:
   
    system( "cls" );
    cout << "\a\t\t==================================" << endl << endl;
    cout << "\t\t\tKonwerter Jednostek" << endl << endl;
    cout << "\t\t==================================" << endl << endl;
   
    cout << "\t\tPodaj wartosc milimetrow, ktora chcesz skonwertowac: ";
    cin >> milimetry;
    if( cin.fail() == true )
    {
        cout << "\t\t\n\nPodaj liczbe rzeczywista!" << endl;
        cout << "\t\tPodaj wartosc milimetrow, ktora chcesz skonwertowac: ";
        cin.clear();
        cin.sync();
        cin >> milimetry;
    }
   
   
    milimetry_na_centymetry =( milimetry * 0, 1 );
    milimetry_na_decymetry = milimetry * 0, 01;
    milimetry_na_metry = milimetry * 0, 001;
    milimetry_na_kilometry = milimetry * 0, 0001;
   
    if( milimetry == 1 )
    {
        cout << "\n\n\t\t" << milimetry << " milimetr to: " << endl << endl;
    }
   
    if( milimetry == 2 || 3 || 4 )
    {
        cout << "\n\n\t\t" << milimetry << " milimetry to: " << endl << endl;
    }
    else
    {
        cout << "\n\n\t\t" << milimetry << " milimetrow to: " << endl << endl;
    }
   
   
    cout << "\t\t[1] Centymetrow: " << milimetry_na_centymetry << endl
    << "\t\t-------------------------" << endl
    << "\t\t[2] Decymetrow: " << milimetry_na_decymetry << endl
    << "\t\t-------------------------" << endl
    << "\t\t[3] Metrow: " << milimetry_na_metry << endl
    << "\t\t-------------------------" << endl
    << "\t\t[4] Kilometrow: " << milimetry_na_kilometry << endl
    << "\t\t-------------------------" << endl << endl << endl;
    cout << "\t\t";
    system( "PAUSE" );
    WybierzJednostke();
P-79735
pekfos
» 2013-04-01 16:51:59
1. Ułamki się pisze tak:
1.23456
, a nie
1, 23456

2. Taki zapis jest niepoprawny:
if( milimetry == 2 || 3 || 4 )
P-79736
Bajt
Temat założony przez niniejszego użytkownika
» 2013-04-01 16:55:02
Jaki wstyd. Dzięki. A i jeszcze jedno: jak mam wstawiać na forum kod źródłowy (czyli tak aby było przejrzyście i odznaczało się na stronie?) Próbowałem w <code> ale nie działa
P-79737
pekfos
» 2013-04-01 16:58:30
» KursyKurs STC kurs
P-79738
« 1 »
  Strona 1 z 1