• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Program nie wyświetla większych liczb

Object Storage Arubacloud
0 głosów
370 wizyt
pytanie zadane 12 lutego 2019 w C i C++ przez seba0456 Nowicjusz (160 p.)
edycja 12 lutego 2019 przez seba0456

Zaczniemy od problemu co wyświetla mój program:

 

Prosty przelicznik jednostek
Jaka jednostke chcesz przeliczyc? help-pomoc. masa
Wybrano mase obslugjemy tony, kilogrmy, dekagramy, gramy, miligramy. (nazwa) z czego chcesz przeliczyc?
miligramy
na:
tony
Podaj wartosc miligramow (jesli zmienna jest ulamkiem dziesietnym zapisz czesc dziesietna po kropce (.) nie po przecinku (,)
10
1e-008 ton  //Problem

 

Teraz pora na kod źródłowy.

#include <iostream>

using namespace std;

int main()
{
    string instrukcja;
    cout << "Prosty przelicznik jednostek" << endl;
    cout << "Jaka jednostke chcesz przeliczyc? help-pomoc. ";
    getline( cin, instrukcja );
    if ( instrukcja == "help" ) //wybor pomoc
    {
        cout << "Co obslugujemy? 1.jednostki masy (kg,g,t,itp.) instrukcja = masa ";
        cout << "2.odleglosc (cm,m,km) instrukcja = odleglosc " << endl;
        cout << "rozmiar informatyka (bajt) instrukcja = bajt " << endl;
        cout << "godzina (czas) instrukcja = czas " << endl;
        cout << "predosc instrukcja = predkosc " << endl;
    }
    else if ( instrukcja == "masa" )
    {
        string dane1;
        string dane2;
        double z;
        double na;
        cout << "Wybrano mase obslugjemy tony, kilogrmy, dekagramy, gramy, miligramy. (nazwa) ";
        cout << "z czego chcesz przeliczyc?" << endl; //wybor dane1
        getline( cin, dane1 );
        cout << "na: " << endl; //wybor2
        getline( cin, dane2);
        if ( dane1 == "tony" && dane2 == "kilogramy" )
        {
            double dane;
            cout << "Podaj wartosc ton (jesli zmienna jest ulamkiem dziesietnym zapisz czesc dziesietna po kropce (.) nie po przecinku (,)" << endl;
            cin >> z;
            dane = z * 1000;
            cout << dane << " kg";
        }
        else if ( dane1 == "tony" && dane2 == "dekagramy")
          {
            double dane;
            cout << "Podaj wartosc ton (jesli zmienna jest ulamkiem dziesietnym zapisz czesc dziesietna po kropce (.) nie po przecinku (,)" << endl;
            cin >> z; //wartosc wejscowa
            dane = z * 100000;
            cout << dane << " dag";

To jest wycinek kodu ponieważ dalej działa na identycznej zasadzie w build messages nie ma uwag. 

 

 

 

Jeśli potrzeba pełnego kodu oto on

#include <iostream>

using namespace std;

int main()
{
    string instrukcja;
    cout << "Prosty przelicznik jednostek" << endl;
    cout << "Jaka jednostke chcesz przeliczyc? help-pomoc. ";
    getline( cin, instrukcja );
    if ( instrukcja == "help" ) //wybor pomoc
    {
        cout << "Co obslugujemy? 1.jednostki masy (kg,g,t,itp.) instrukcja = masa ";
        cout << "2.odleglosc (cm,m,km) instrukcja = odleglosc " << endl;
        cout << "rozmiar informatyka (bajt) instrukcja = bajt " << endl;
        cout << "godzina (czas) instrukcja = czas " << endl;
        cout << "predosc instrukcja = predkosc " << endl;
    }
    else if ( instrukcja == "masa" )
    {
        string dane1;
        string dane2;
        double z;
        double na;
        cout << "Wybrano mase obslugjemy tony, kilogrmy, dekagramy, gramy, miligramy. (nazwa) ";
        cout << "z czego chcesz przeliczyc?" << endl; //wybor dane1
        getline( cin, dane1 );
        cout << "na: " << endl; //wybor2
        getline( cin, dane2);
        if ( dane1 == "tony" && dane2 == "kilogramy" )
        {
            double dane;
            cout << "Podaj wartosc ton (jesli zmienna jest ulamkiem dziesietnym zapisz czesc dziesietna po kropce (.) nie po przecinku (,)" << endl;
            cin >> z;
            dane = z * 1000;
            cout << dane << " kg";
        }
        else if ( dane1 == "tony" && dane2 == "dekagramy")
          {
            double dane;
            cout << "Podaj wartosc ton (jesli zmienna jest ulamkiem dziesietnym zapisz czesc dziesietna po kropce (.) nie po przecinku (,)" << endl;
            cin >> z; //wartosc wejscowa
            dane = z * 100000;
            cout << dane << " dag";
          }
        else if ( dane1 == "tony" && dane2 == "gramy")
        {
            double dane;
            cout << "Podaj wartosc ton (jesli zmienna jest ulamkiem dziesietnym zapisz czesc dziesietna po kropce (.) nie po przecinku (,)" << endl;
            cin >> z; //wartosc wejscowa
            dane = z * 10000000;
            cout << dane << " gram";
        }
        else if ( dane1 == "tony" && dane2 == "miligramy" )
        {
            double dane; //waretosc wyjscowa
            cout << "Podaj wartosc ton (jesli zmienna jest ulamkiem dziesietnym zapisz czesc dziesietna po kropce (.) nie po przecinku (,)" << endl;
            cin >> z; //wartosc wejscowa
            dane = z * 1000000000;
            cout << dane << " gram";
        }
        else if ( dane1 == "kilogramy" && dane2 == "tony")
        {
          double dane; //waretosc wyjscowa
            cout << "Podaj wartosc kilogramow (jesli zmienna jest ulamkiem dziesietnym zapisz czesc dziesietna po kropce (.) nie po przecinku (,)" << endl;
            cin >> z; //wartosc wejscowa
            dane = z * 0.1000;
            cout << dane << " ton";
        }
        else if ( dane1 == "kilogramy" && dane2 == "dekagramy")
        {
          double dane; //waretosc wyjscowa
            cout << "Podaj wartosc kilogramow (jesli zmienna jest ulamkiem dziesietnym zapisz czesc dziesietna po kropce (.) nie po przecinku (,)" << endl;
            cin >> z; //wartosc wejscowa
            dane = z * 100;
            cout << dane << " ton";
        }
        else if ( dane1 == "kilogramy" && dane2 == "gramy" )
        {
            double dane;
            cout << "Podaj wartosc kilogramow (jesli zmienna jest ulamkiem dziesietnym zapisz czesc dziesietna po kropce (.) nie po przecinku (,)" << endl;
            cin >> z;
            dane = z * 1000;
            cout << dane << " gram";
        }
        else if (  dane1 == "kilogramy" && dane2 == "miligramy" )
        {
            double dane;
            cout << "Podaj wartosc kilogramow (jesli zmienna jest ulamkiem dziesietnym zapisz czesc dziesietna po kropce (.) nie po przecinku (,)" << endl;
            cin >> z;
            dane = z * 1000000;
            cout << dane << " miligramow";
        }
        else if ( dane1 == "gramy" && dane2 == "tony" )
        {
            double dane;
            cout << "Podaj wartosc gramow (jesli zmienna jest ulamkiem dziesietnym zapisz czesc dziesietna po kropce (.) nie po przecinku (,)" << endl;
            cin >> z;
            dane = z / 1000000;
            cout << dane << " ton";
        }
        else if ( dane1 == "gramy" && dane2 == "kilogram" )
        {
            double dane;
            cout << "Podaj wartosc gramow (jesli zmienna jest ulamkiem dziesietnym zapisz czesc dziesietna po kropce (.) nie po przecinku (,)" << endl;
            cin >> z;
            dane = z / 1000;
            cout << dane << " kilogramow";
        }
        else if ( dane1 == "gramy" && dane2 == "dekagramy")
        {
            double dane;
            cout << "Podaj wartosc gramow (jesli zmienna jest ulamkiem dziesietnym zapisz czesc dziesietna po kropce (.) nie po przecinku (,)" << endl;
            cin >> z;
            dane = z * 0.1;
            cout << dane << " dekagramow";
        }
        else if ( dane1 == "gramy" && dane2 == "miligram")
        {
            double dane;
            cout << "Podaj wartosc gramow (jesli zmienna jest ulamkiem dziesietnym zapisz czesc dziesietna po kropce (.) nie po przecinku (,)" << endl;
            cin >> z;
            dane = z * 1000;
            cout << dane << " miligram";
        }
        else if ( dane1 == "miligramy" && dane2 == "tony" )
        {
            double dane;
            cout << "Podaj wartosc miligramow (jesli zmienna jest ulamkiem dziesietnym zapisz czesc dziesietna po kropce (.) nie po przecinku (,)" << endl;
            cin >> z;
            dane = z * 0.000000001;
            cout << dane << " ton";
        }
        else if ( dane1 == "miligramy" && dane2 == "kilogramy" )
        {
            double dane;
            cout << "Podaj wartosc miligramow (jesli zmienna jest ulamkiem dziesietnym zapisz czesc dziesietna po kropce (.) nie po przecinku (,)" << endl;
            cin >> z;
            dane = z * 0.000001;
            cout << dane << " kilogramow";
        }
        else if ( dane1 == "miligramy" && dane2 == "gramy" )
        {
            double dane;
            cout << "Podaj wartosc miligramow (jesli zmienna jest ulamkiem dziesietnym zapisz czesc dziesietna po kropce (.) nie po przecinku (,)" << endl;
            cin >> z;
            dane = z * 0.001;
            cout << dane << " gram";
        }
        else if ( dane1 == "miligramy" && dane2 == "dekagramy" )
        {
            double dane;
            cout << "Podaj wartosc miligramow (jesli zmienna jest ulamkiem dziesietnym zapisz czesc dziesietna po kropce (.) nie po przecinku (,)" << endl;
            cin >>  z;
            dane = z * 0.0001;
            cout << dane << " dekagram";
        }
    }
    else if ( instrukcja == "odleglosc" )
    {
     cout << "Wybrano mase obslugjemy tony, kilogrmy, dekagramy, gramy, miligramy. (nazwa) " << endl;
    }


    return 0;
}

dodając kod #include <windows.h> oraz na koniec system("pause");
    return 0; udało mi się powstrzymać exe przed natychmiastowym zamknięciem pode te info bo może mieć znaczenie.

 

Da coś jak to dodam?

cout.flags(ios::fixed);

 

1 odpowiedź

0 głosów
odpowiedź 12 lutego 2019 przez seba0456 Nowicjusz (160 p.)
Udało mi się poprawić ale nadal potrzebuje pomocy

np liczbę 130 wyświetla tak 130.00000000 zera są zbędne można e pominąć jak się używa mojego programu ale jak pozbyć się zer? dodałem  cout.flags(ios::fixed); ale mam problem z liczbami jak mówiłem daje zera po przecinku

Podobne pytania

+1 głos
2 odpowiedzi 209 wizyt
0 głosów
1 odpowiedź 335 wizyt
pytanie zadane 27 marca 2017 w C i C++ przez Kamil Duljas Użytkownik (990 p.)
+1 głos
2 odpowiedzi 280 wizyt
pytanie zadane 2 września 2019 w C i C++ przez magda_19 Gaduła (3,080 p.)

92,568 zapytań

141,421 odpowiedzi

319,629 komentarzy

61,956 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...