Pliki, srednia liczb

0

Witam, muszę pobrać z pliku zawierającego liczby całkowite te liczby oddzielone znakami białymi i podać średnią liczb parzystych i nieparzystych. Wynik wychodzi mi zły i nie wiem gdzie jest problem. Oto kod:

#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    fstream plik;
    plik.open("liczbyC.txt");
    if(!plik.is_open())
    {
        cout<<"Blad otwarcia pliku"<<endl;
        return 1;
    }

    int liczby;
    int sumaP, sumaNP;
    int ileP=0, ileNP=0;

    while(plik>>liczby)
    {
        if(liczby%10==0)
        {
            ileP++;
            sumaP+=liczby;
        }
        else
        {
            ileNP++;
            sumaNP+=liczby;
        }
    }
    plik.close();

    cout<<"Srednia liczb parzystych: "<<(1.0*sumaP)/ileP<<endl;
    cout<<"Srednia liczb nieparzystych: "<<(1.0*sumaNP)/ileNP<<endl;
    return 0;
}

2
if(liczby%10==0)

Sprawdzawsz resztę z dzielenia przez 10, a nie przez 2.

Dodatkowo nigdzie nie inicjalizujesz wartości sumaP i sumaNP, więc masz UB przy ich użyciu.

1

zgaduję, że nie chciałeś tu wpisywać dwójki w systemie dwójkowym?
if(liczby%10==0)

1 użytkowników online, w tym zalogowanych: 0, gości: 1