Pereiti prie turinio

Rekomenduojami pranešimai

Sveiki, taigi susidūriau su problema. ieškojau klaidos, bet rasti negalėjau. Yra toks reikalas, kad reikia rasti Vienodus vardus. Duomenų faile duota Pavardė/vardas :

7
Margis		Petras
Batuotas	Algis
Barsė		Rita
Barsis		Rimas
Liepa		Petras
Liepa		Rima
Liepa		Rita

ir kai ieškau vienodu vardus man turi rezultate spausdint Vardas ir kiek kartų jis pasikartoja, tačiau gaunu šita:

Margis		Petras  7

Visas programos kodas:

const char Cdf[] = "mokiniai.txt";
const char Cfd[] = "rez.txt";
const int Cmax = 300;
const int Cpav = 20;
struct Zmogus{
   string  pav,
           vard;
   int     kiek;
};

void Skaityti(Zmogus A[], int & n)
{
   char eil[Cpav + 1];
   ifstream fd(Cdf);
   fd>>n;
   fd.ignore(80, '\n');
   for(int i = 0; i < n; i ++)
   {
       fd.get(eil,Cpav);
       A[i].pav = eil;
       getline(fd,A[i].vard);
       A[i].kiek = 1;
   }
   fd.close();
}

void Spausdinti ( Zmogus A[], int n, string pav)
{
   ofstream fs(Cfd);
   fs<< pav <<endl;
   for(int i = 0; i < n ; i ++)
   {
       fs <<A[i].pav<<" "
          <<A[i].vard<<" "
          <<A[i].kiek<<endl;
   }
   fs.close();
}

int Yra(Zmogus A[], int n, string pav)
{
   for(int i = 0; i < n; i++)
   {
       if(A[i].vard == pav)
       {
           return i;
       }
   }
   return -1;
}

void Atrinkti (Zmogus A[], int n, Zmogus B[], int & m)
{
   m  = 0;
   for(int i = 0 ; i < n; i++)
   {
       int k = Yra(B,m,A[i].vard);
       if ( k >= 0)
       {
           B[k].kiek++;
       }
       else{
           B[m] = A[i];
           m++;
       }
   }
}

int main()
{
   Zmogus A[Cmax], B[Cmax];
   int n,m;

   Skaityti(A,n);
   Atrinkti(A,n,B,m);
   Spausdinti(B,m,"Vardai:");
   return 0;
}

 

Ką ne taip darau?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...