Pereiti prie turinio

Rekomenduojami pranešimai

Nemeta gyventojų, su nurodytu amžiumi. Padėkit kas. (Būtinai reik dviejų masyvų)

 

Duomenų failas:

Pavarde1 Vardas1 1980

Pavarde2 Vardas2 1960

Pavarde3 Vardas3 1970

Pavarde4 Vardas4 1990

Pavarde5 Vardas5 1970

Pavarde6 Vardas6 1980

Pavarde7 Vardas7 1990

Pavarde8 Vardas8 1970

 

 

#include <iostream>

#include <iomanip>

#include <cstdlib>

#include <fstream>

#include <string>

 

const int Cmax=30;

using namespace std;

 

struct gyventojai{

string pav;

string vardas;

int gimmetai;

int amzius;

};

void Skaityti (gyventojai A[],int &n);

void Spausdinti (gyventojai A[],gyventojai B[], int &n,int m);

void Rikiuoti (gyventojai A[],int n);

void Rikiuoti1 (gyventojai A[],int n);

void Rikiuoti2 (gyventojai A[],int n);

 

int main()

{

gyventojai A[Cmax]; //gyventoju masyvas

int n=0;

gyventojai B[Cmax]; // atrinktu pagal amziu gyventoju masyvas

int m=0;

int gamzius; //gyventojo amzius

 

cout<<"Iveskite gyventojo amziu: "<<endl;

cin>>gamzius;

 

Skaityti(A,n);

Spausdinti(A,B,n,m);

Rikiuoti(A,n);

Rikiuoti1(A,n);

Rikiuoti2(A,n);

 

return 0;

}

 

void Skaityti(gyventojai A[],int &n)

{

ifstream fd("Duomenys.txt");

while(!fd.eof())

{

fd>>A[n].pav>>A[n].vardas>>A[n].gimmetai;

A[n].amzius=2015-A[n].gimmetai;

fd.ignore();

if(!fd.fail())n++;

}

 

fd.close();

}

void Spausdinti(gyventojai A[],gyventojai B[],int &n,int m)

{

ofstream fr("rezultatai.txt");

 

int gamzius;

fr<<" Gyventoju sarasas: "<<endl;

fr<<"Pavarde Vardas Gim. Metai"<<endl;

fr<<"----------------------------------------"<<endl;

for(int i=0;i<n;i++)

fr<<left<<setw(15)<<A.pav<<setw(15)<<A.vardas<<" "<<A.gimmetai<<endl;

fr<<"----------------------------------------"<<endl;

fr<<"Gyventojai su nurodytu amziumi: "<<endl;

fr<<"Pavarde Vardas Gim. Metai"<<endl;

fr<<"----------------------------------------"<<endl;

for(int i=0;i<n;i++)

{

if(A.amzius==gamzius)

{

//irasu kopijavimas is vieno irasu masyvo i kita

B[m].pav=A.pav;

B[m].vardas=A.vardas;

B[m].gimmetai=A.gimmetai;

m++;

}

}

for(int i=0;i<n;i++)

{

fr<<left<<setw(15)<<B.vardas<<" "<<setw(15)<<B.pav<<" "<<B.gimmetai<<" "<<endl;

}

fr<<"----------------------------------------"<<endl;

 

fr.close();

}

 

void Rikiuoti (gyventojai A[],int n)

{

for (int i=0; i<n-1; i++)

for (int j=i+1; j<n; j++)

if(A[j].pav<A.pav){

gyventojai p=A;

A=A[j];

A[j]=p;

}

}

 

 

void Rikiuoti1 (gyventojai A[],int n)

{

for (int i=0; i<n-1; i++)

for (int j=i+1; j<n; j++)

if(A[j].vardas<A.vardas){

gyventojai p=A;

A=A[j];

A[j]=p;

}

}

 

void Rikiuoti2 (gyventojai A[],int n)

{

for (int i=0; i<n-1; i++)

for (int j=i+1; j<n; j++)

if(A[j].gimmetai<A.gimmetai){

gyventojai p=A;

A=A[j];

A[j]=p;

}

}

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Pirma klaida – tu deklaruoji “gamzius” viena karta:

 

int main()
{
gyventojai A[Cmax]; //gyventoju masyvas
int n=0;
gyventojai B[Cmax]; // atrinktu pagal amziu gyventoju masyvas
int m=0;
int gamzius; //gyventojo amzius

 

o po to antra karta:

 

void Spausdinti(gyventojai A[],gyventojai B[],int &n,int m)
{
ofstream fr("rezultatai.txt");

int gamzius;

 

todėl tavo “gamzius” iš “Spausdinti” turi atsitiktinį skaičių.

 

Antra klaida:

 

B[m].pav=A[i].pav;
B[m].vardas=A[i].vardas;
B[m].gimmetai=A[i].gimmetai;
m++;

 

skaičiuoji “m”, o čia paduodi “n”:

 

for(int i=0;i<n;i++)
{
fr<<left<<setw(15)<<B[i].vardas<<" "<<setw(15)<<B[i].pav<<" "<<B[i].gimmetai<<" "<<endl;
}

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ą...