Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[c++] Nauka programowania


Rekomendowane odpowiedzi

Opublikowano

Wiec tak od jakiegoś czasu uczę się programować i zastanawiam się jak przekształcić kod żeby był pod taką postacią

Liczba pierwsza to: 13.3. Wczytano? 1.
Liczba druga to: 0. Wczytano? 0.
Liczba trzecia to: 33.22. Wczytano? 1.

 


A to mój kod :

 

#include <iostream>
int main()
{
float p;
float d;
float t;

std::cout << "Podaj pierwsza liczbe reczywista: ";
std::cin >> p;
std::cout << "\nCzy udalo sie wczytac? " << std::cin.good() << std::endl;
std::cout << "\nCzy cos nawalilo? " << std::cin.fail() << std::endl;
std::cin.clear();
std::cin.sync();

std::cout << "Podaj Druga liczbe reczywista: ";
std::cin >> d;
std::cout << "\nCzy udalo sie wczytac? " << std::cin.good() << std::endl;
std::cout << "\nCzy cos nawalilo? " << std::cin.fail() << std::endl;
std::cin.clear();
std::cin.sync();


std::cout << "Podaj Trzecia liczbe reczywista: ";
std::cin >> t;
std::cout << "\nCzy udalo sie wczytac? " << std::cin.good() << std::endl;
std::cout << "\nCzy cos nawalilo? " << std::cin.fail() << std::endl;
std::cin.clear();
std::cin.sync();


std::cout << "\nPierwsza liczba = " << p << std::endl;
std::cout << "\nDruga liczba = " << d << std::endl;
std::cout << "\nTrzecia liczba = " << t << std::endl;


return 0;
}

 


Wychodzić mi wychodzi ale całkiem inaczej wygląda :/

graphic.png

Weteran
Opublikowano

Ale o co dokładniej chodzi?

Chcesz żeby po wypisaniu wartość każdej ze zmiennych, została również wypisana informacja o powodzeniu operacji? Po prostu zadeklaruj 3 dodatkowe zmienne typu bool i do każdej z nich zapisz zwróconą wartość przez cin.good() zaraz po pobraniu liczby od użytkownika.

Opublikowano

Ale o co dokładniej chodzi?

Chcesz żeby po wypisaniu wartość każdej ze zmiennych, została również wypisana informacja o powodzeniu operacji? Po prostu zadeklaruj 3 dodatkowe zmienne typu bool i do każdej z nich zapisz zwróconą wartość przez cin.good() zaraz po pobraniu liczby od użytkownika.

 

Poprostu chodzi mi o to żeby to wyglądało :

 

Liczba pierwsza to: 13.3. Wczytano? 1.
Liczba druga to: 0. Wczytano? 0.
Liczba trzecia to: 33.22. Wczytano? 1.

A nie :

 

mTx4pcq.png

 

Jak pisałem dopiero się uczę wiec mnie oświeć :D

graphic.png

Weteran
Opublikowano

Więcej byś nauczył się robiąc to samemu, ale skoro chcesz to masz:

 

#include <iostream>
int main()
{
    float p;
    float d;
    float t;
    bool bp, bd, bt;


    std::cout << "Podaj pierwsza liczbe reczywista: ";
    std::cin >> p;
    bp = std::cin.good();
    if (!bp)
        p = 0;
    std::cin.clear();
    std::cin.sync();


    std::cout << "Podaj Druga liczbe reczywista: ";
    std::cin >> d;
    bd = std::cin.good();
    if (!bd)
        d = 0;
    std::cin.clear();
    std::cin.sync();




    std::cout << "Podaj Trzecia liczbe reczywista: ";
    std::cin >> t;
    bt = std::cin.good();
    if (!bt)
        t = 0;
    std::cin.clear();
    std::cin.sync();




    std::cout << "liczba pierwsza to: " << p << ". Wczytano? " << bp <<". \n";
    std::cout << "liczba druga to: " << d << ". Wczytano? " << bd << ". \n";
    std::cout << "liczba trzecia to: " << t << ". Wczytano? " << bt << ". \n";


    std::cin.get();


    return 0;
}
 

 

Opublikowano

 

Więcej byś nauczył się robiąc to samemu, ale skoro chcesz to masz:

 

#include <iostream>
int main()
{
    float p;
    float d;
    float t;
    bool bp, bd, bt;


    std::cout << "Podaj pierwsza liczbe reczywista: ";
    std::cin >> p;
    bp = std::cin.good();
    if (!bp)
        p = 0;
    std::cin.clear();
    std::cin.sync();


    std::cout << "Podaj Druga liczbe reczywista: ";
    std::cin >> d;
    bd = std::cin.good();
    if (!bd)
        d = 0;
    std::cin.clear();
    std::cin.sync();




    std::cout << "Podaj Trzecia liczbe reczywista: ";
    std::cin >> t;
    bt = std::cin.good();
    if (!bt)
        t = 0;
    std::cin.clear();
    std::cin.sync();




    std::cout << "liczba pierwsza to: " << p << ". Wczytano? " << bp <<". \n";
    std::cout << "liczba druga to: " << d << ". Wczytano? " << bd << ". \n";
    std::cout << "liczba trzecia to: " << t << ". Wczytano? " << bt << ". \n";


    std::cin.get();


    return 0;
}
 

 

A bez tych wyrażen logicznych (if) nie da rady ? bo w tym moim pro kursie czegoś takiego jeszcze nie mam (dopiero za jakieś 3 "lekcje") :P

 

@Edit

Edytowałem to pod ten mój "Kurs" i wyszło coś takiego :

 

 

#include <iostream>
int main()
{
    float p;
    float d;
    float t;
    bool bp, bd, bt;


    std::cout << "Podaj pierwsza liczbe reczywista: ";
    std::cin >> p;
    bp = std::cin.good();
    std::cin.clear();
    std::cin.sync();


    std::cout << "Podaj Druga liczbe reczywista: ";
    std::cin >> d;
    bd = std::cin.good();
    std::cin.clear();
    std::cin.sync();




    std::cout << "Podaj Trzecia liczbe reczywista: ";
    std::cin >> t;
    bt = std::cin.good();
    std::cin.clear();
    std::cin.sync();




    std::cout << "liczba pierwsza to: " << p << ". Wczytano? " << bp <<". \n";
    std::cout << "liczba druga to: " << d << ". Wczytano? " << bd << ". \n";
    std::cout << "liczba trzecia to: " << t << ". Wczytano? " << bt << ". \n";
    return 0;
}

Gdy by było w nim (kursie) bardziej wytłumaczone zmienne "bool" to bym wiedział jak to rozwiązać ale nie było :/

 

P.s. Dzięki za pomoc i pozdro

graphic.png

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...