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

Wczytanie pliku i obliczenie ile jest liczb parzystych

Ostatnio zmodyfikowano 2013-05-22 16:48
Autor Wiadomość
turson
Temat założony przez niniejszego użytkownika
» 2013-05-21 20:55:04
To wszystko jasne. Już wszystko śmiga. Dodałem jeszcze zapisanie wyniku do pliku:

C/C++
#include <cstdlib>
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    string tekst;
    int parzystych = 0;
    int nieparzystych = 0;
    int liczba;
   
    ifstream plik( "cyfry.txt" );
    ofstream zadanie( "zadanie.txt" );
   
    while( !plik.eof() ) {
       
        plik >> tekst;
        liczba = atoi( tekst.c_str() );
       
        if( liczba % 2 == 0 ) parzystych++;
        else nieparzystych++;
       
       
       
       
       
    }
    cout << "Liczb parzystych: " << parzystych;
    zadanie << parzystych;
    plik.close();
    zadanie.close();
    return 0;
}



Co właściwie tak "po polsku" znaczy?
C/C++
while( !plik.eof() )


Co jest tam niepoprawnego?
P-83551
pekfos
» 2013-05-21 21:11:47
W tym nic.
while( !plik.eof() )
 "po polsku" znaczy "dopóki są dane do odczytania", (a dokładnie "dopóki nie próbowano odczytu, gdy nie było już danych do odczytania")
P-83552
turson
Temat założony przez niniejszego użytkownika
» 2013-05-21 21:21:51
Postanowiłem trenować dalej.
Padło na zadanie maturalne z 2011: http://archiwum.cke.edu.pl/images/stories/00002011_matura/P/inf_pp_2.pdf
Dokładniej zad. 4a

Napisałem:

C/C++
#include <cstdlib>
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    ifstream plik( "hasla.txt" );
    ofstream zadanie4a( "wynik4a.txt" );
    string tekst;
    int dlugosc = 0;
    int parzyste = 0;
    int nieparzyste = 0;
   
    while( !plik.eof() ) {
        plik >> tekst;
        dlugosc = tekst.length();
       
        if( dlugosc % 2 == 0 ) parzyste++;
        else nieparzyste++;
       
    }
    cout << "Wyrazow parzystych: " << parzyste << endl << "Wyrazow nieparzystych: " << nieparzyste;
    zadanie4a << "Wyrazow parzystych: " << parzyste << endl << "Wyrazow nieparzystych: " << nieparzyste;
    plik.close();
    zadanie4a.close();
    return 0;
}

Wyrazow parzystych: 106
Wyrazow nieparzystych: 95

Parzystych podaje mi o 1 za dużo, czemu?
P-83553
pekfos
» 2013-05-21 21:37:29
Nie sprawdzasz, czy udało się wczytać.
P-83558
turson
Temat założony przez niniejszego użytkownika
» 2013-05-21 21:45:05
Nieparzystych jest za dużo*

Parzystych jest ok.


Wcześniej nie sprawdzałem czy udało się wczytać i działało. Poza tym parzyste prawidłowo oblicza
P-83559
pekfos
» 2013-05-22 14:55:41
Dla jakich danych nie działa?
P-83594
Maciek
» 2013-05-22 15:20:41
<< removed by pekfos -- gotowiec i to nie na temat >>
P-83596
Berux
» 2013-05-22 15:24:13
@Maciek

Więcej się nauczy jak mu wytłumaczysz, a nie dasz gotowca.
P-83597
1 « 2 » 3
Poprzednia strona Strona 2 z 3 Następna strona