Pereiti prie turinio

Rekomenduojami pranešimai

Sveiki,

 

Darau programą, kurios pirmoje eilutėje parašyta automobilio markė ir automobilių skaičius.

Toliau išvardinami automobiliai, ir iš jų reikia išrinkti tik tuos, kurie atitinka duotąją markę.

 

Duomenys:

 

Opel    6
Mercedes   Benz C 200    2007 7  54900
Opel       Vectra B      1997 2  3850
Skoda      Felicia D     1999 5  4700
Mazda      323F II       1995 5  2300
Opel       Omega B       2000 10 6200
Opel       Vectra B      1998 12 300

 

Rezultatas

 

Opel       Vectra B      1997 2  3850
Opel       Omega B       2000 10 6200
Opel       Vectra B      1998 12 300

 

Kur padariau klaidą? Nežinau, ar tinkamai naudoju strncmp.. Gal galėtumėte padėti su kodu, kuris būtų kuo artimesnis mano parašytai programai.

 

//Programos vardas
#include <cstring>
#include <fstream>
#include <iomanip>
#include <cmath>
using namespace std;
//---------------------------------------------
const char FVD[] = "Duomenys.txt";
const char FVR[] = "Rezultatai.txt";
void Skaitymas(string &m, int &n, string z[]);
void Rasymas(int n, string m, string z[]);
//---------------------------------------------
int main()
{
   int n;
   string m;
   string z[100];
   Skaitymas(m, n, z);
   Rasymas(n, m, z);
   return 0;
}
//---------------------------------------------
void Skaitymas(string &m, int &n, string z[])
{
   char eil[9], eill[26];
   ifstream fd(FVD);
   fd.get(eil, 8);
   m = eil;
   fd >> n;
   fd.ignore(80, '\n');
   for (int i=0;i<n;i++)
   {
       fd.get(eill, 25);
       z[i] = eill;
       fd.ignore(80, '\n');
   }
   fd.close();
}
//---------------------------------------------
void Rasymas(int n, string m, string z[])
{
   ofstream fr(FVR);
   for(int i=0;i<n;i++)
   {
       if(strncmp(m, z[i], 9) == 0)
       {
           fr << z[i] << endl;
       }
   fr << m << endl;
   fr.close();
}
}
//---------------------------------------------

Redagavo RmN
Nuoroda į pranešimą
Dalintis kituose puslapiuose
void Rikiavimas(Automobilis A[], int n)
{
Automobilis t;
   bool done = false;
   while (!done) 
   {
   	done = true;
       for (int i = 0 ; i < n-1 ; i++) 
       {
           if ((A[i].pav > A[i+1].pav) || (A[i].pav == A[i+1].pav && A[i].z > A[i+1].z)) 
           {
               done = false;
               t = A[i];
   			A[i] = A[i+1];
   			A[i+1] = t;
           }
       }
       n--;
   }
}

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