Problem z zadaniem domowym z podstawowego kursu programowania
Ostatnio zmodyfikowano 2013-08-23 20:25
omell Temat założony przez niniejszego użytkownika |
Problem z zadaniem domowym z podstawowego kursu programowania » 2010-11-07 18:17:40 Próbowałem rozwiązać zadanie domowe z lekcji dotyczącej obsługi strumienia wejściowego, lecz bez powodzenia. Czy ktoś może pomóc?
Oto te zadanie: Zadanie domowe Napisz program, który wczyta trzy liczby rzeczywiste, a na końcu programu je wszystkie wypisze. Zadbaj o to, by bufor strumienia wejściowego był za każdym razem czyszczony. Wynik końcowy powinien również zawierać informacje czy wczytanie danej liczby się powiodło. Przykładowe dane wejściowe 13.3 tak 123 33.22nie Przykładowe dane wyjściowe Liczba pierwsza to: 13.3. Wczytano? 1. Liczba druga liczba to: 0. Wczytano? 0. Liczba trzecie liczba to: 33.22. Wczytano? 1. Wskazówka Informacje o poprawnym (albo niepoprawnym) wczytaniu danych należy przechować w dodatkowych zmiennych typu bool. |
|
Dragonit |
» 2010-11-07 19:00:22 To pokaż co naskrobałeś to ci poprawimy. |
|
omell Temat założony przez niniejszego użytkownika |
» 2010-11-07 19:12:48 #include <iostream> using namespace std; int main() { float a; float b; float c; cout << "Podaj pierwsza liczbe calkowita : "; cin >> a; cout << "Podaj druga liczbe calkowita : "; cin >> b; cout << "Podaj trzecia liczbe calkowita : "; cin >> c; cout << "Liczba pierwsza to : " << a << " wczytno" << sizeof( bool ) << endl; cout << "Liczba druga to : " << b << " wczytano" << sizeof( bool ) << endl; cout << "Liczba trzecia to :" << c << " wczytano" << sizeof( bool ) << endl; cin.clear(); return 0; }
|
|
Dragonit |
» 2010-11-07 19:48:28 float a, b, c; bool atrue, btrue, ctrue;
cout << "Podaj pierwsza liczbe calkowita : "; cin >> a; if( cin ) atrue = true;
cin.sync();
cout << "Podaj druga liczbe calkowita : "; cin >> b; if( cin ) btrue = true;
cin.sync();
cout << "Podaj trzecia liczbe calkowita : "; cin >> c; if( cin ) ctrue = true;
cin.sync();
cout << "Liczba pierwsza to : " << a << " wczytano " << atrue << endl; cout << "Liczba druga to : " << b << " wczytano " << btrue << endl; cout << "Liczba trzecia to :" << c << " wczytano " << ctrue << endl;
|
|
ison |
» 2010-11-07 20:02:13 @Dragonit coś chyba skopałeś bo nawet test przykładowy Ci nie przechodzi :> kodzik: #include <iostream>
using namespace std;
int main() { double a = 0.0, b = 0.0, c = 0.0; bool read_a, read_b, read_c; cout << "Podaj 3 liczby rzeczywiste" << endl; cin >> a; read_a = cin.good(); cin.clear(); cin.sync(); cin >> b; read_b = cin.good(); cin.clear(); cin.sync(); cin >> c; read_c = cin.good(); cin.clear(); cin.sync(); cout << "Liczba pierwsza to: " << a << " Wczytano: " << read_a << endl; cout << "Liczba druga to: " << b << " Wczytano: " << read_b << endl; cout << "Liczba trzecia to: " << c << " Wczytano: " << read_c << endl; return 0; }
|
|
omell Temat założony przez niniejszego użytkownika |
» 2010-11-07 20:11:01 Dziękuję za pomoc. W tym kursie podstawowym nie były podawane zastosowane przez Ciebie rozwiązania więc jak ktoś kto dopiero się uczy programować ma rozwiązać zadanie domowe? Jeszcze raz dzięki. Pozdrawiam |
|
Dragonit |
» 2010-11-07 20:11:45 Czy zamiast "zmienna = cin.good();" nie można użyć "if(cin) zmienna = true". Wydaje mi się że to to samo. Uświadom mnie że mój kod nie działa poprawnie. |
|
ison |
» 2010-11-07 20:22:47 @Dragonit prawie to samo, ale nie o to mi chodziło w Twoim kodzie Uświadom mnie że mój kod nie działa poprawnie.
|
wpisz literę 'a' do swojego programu i zobacz co się stanie |
|
« 1 » 2 |