Pereiti prie turinio

C++ masyvo elemento šalinimo uždaviniai


Rekomenduojami pranešimai

http://i.imgur.com/6dvJeoo.png

^ užduotis, o apačioje yra tai ką esu parašęs iki šiol. Nesuprantu ką rašyti, kad gražiai išvesti į rezultatų failą, kaip parašyta užduotyje, gal galit padėti.

#include <iostream>
#include <fstream>
using namespace std;
const int maxi = 100;
void skaityti(ifstream &in, int &x, int &y, int varztai[], int verzles[]);
void skaiciavimas(int &x, int &y, int varztai[], int verzles[]);
void isvedimas(ofstream &out, int varztai[], int verzles[], int x, int y);
void rikiavimas(int &x, int &y, int varztai[], int verzles[]);
int main()
{
ifstream in("Duomenys.txt");
ofstream out("Rezultatai.txt");
int x, y;
int varztai[maxi], verzles[maxi];

skaityti(in, x, y, varztai, verzles);
skaiciavimas(x, y, varztai, verzles);
rikiavimas(x, y, varztai, verzles);
isvedimas(out, varztai, verzles, x, y);

return 0;
}
void rikiavimas(int &x, int &y, int varztai[], int verzles[]){
int temp, temp2;
for(int i = 0; i<x;i++)
{
   for(int j = 0; j<(x-1);j++)
   {
       if(varztai[j+1]>varztai[j])
       {
   temp = varztai[j];
   varztai[j]=varztai[j+1];
   varztai[j+1]=temp;
   }
   }
}
for(int u = 0; u<y;u++)
{
   for(int h = 0; h<(y-1);h++)
       {
       if(verzles[h+1]>verzles[h])
       {
   temp2 = verzles[h];
   verzles[h]=verzles[h+1];
   verzles[h+1]=temp2;
       }
       }
}


}
void isvedimas(ofstream &out, int varztai[], int verzles[], int x, int y){
for (int isv = 0; isv < x; isv++){
out << varztai[isv] << endl;
}
out << "----" << endl;
for (int isve = 0; isve < y; isve++){
out << verzles[isve] << endl;
}
}
void skaiciavimas(int &x, int &y, int varztai[], int verzles[]){
for (int q = 0; q < x; q++){
   for (int w = 0; w < y; w++){
       if (varztai[q] == verzles[w]){
           for(int e = q; e < x; e++)
               varztai[e]=varztai[e+1];
               x--;

           for(int r = w; r < y; r++)
               verzles[r]=verzles[r+1];
               y--;
  }
 }
}
}
void skaityti(ifstream &in, int &x, int &y, int varztai[], int verzles[]){
in >> x;
for (int i = 0; i < x; i++){
   in >> varztai[i];}
in >> y;
for (int o = 0; o < y; o++){
   in >> verzles[o];}
}

Kitoje užduotyje kažkas negerai su šalinimo algoritmu, bet nesuprantu kas (pirmas skaičius masyve neišsitrina)

http://i.imgur.com/H0KtkjB.png

#include <iostream>
#include <fstream>
using namespace std;
const int maxi = 1000;
void ivedimas(ifstream &in, int &x, int mas[]);
void salinimas(int &x,int &y, int ausra[], int ruta[]);
int main()
{
   ifstream in("ausra.txt");
   ifstream in2("ruta.txt");
   ofstream out("rezultatai.txt");
   int ausra[maxi], ruta[maxi];
   int x, y;
   ivedimas(in, x, ausra);
   ivedimas(in2, y, ruta);
   salinimas(x, y, ausra, ruta);

   for (int isv = 0; isv < x; isv++){
       cout << ausra[isv] << endl;}
   return 0;
}
void ivedimas(ifstream &in, int &x, int mas[]){
   in >> x;
   for (int i = 0; i < x; i++){
       in >> mas[i];
   }
}
void salinimas(int &x,int &y, int ausra[], int ruta[]){
for (int q = 0; q < x; q++){
   for (int w = 0; w < y; w++){
       if (ausra[q] == ruta[w]){
           for(int e = q; e < x -1; e++) {
               ausra[e]=ausra[e+1];
           }
           x--;
       }
   }
}
}

Nuoroda į pranešimą
Dalintis kituose puslapiuose
  • po 8 metų...

#include <fstream>

using namespace std;

//--- Globalieji parametrai ---
const char CDfd[] = "Duomenys.txt";
const char CDfr[] = "Rezultatas.txt";
const int CMaxN = 100;
const int CMaxM = 100;
//--- Funkciju parametrai ---
void Skaityti(int A[], int B[], int &n, int &m);
void Spausdinti(int A[], int B[], int &n, int &m);
int Tikrinimas(int A[], int B[], int &n, int &m);
int Rikiavimas(int A[], int B[], int n, int m);
//--- Pagrindine Funkcija ---
int main (){
    int A[CMaxN], B[CMaxM], n, m;
    Skaityti(A, B, n, m);
    Tikrinimas(A, B, n, m);
    Rikiavimas(A, B, n, m);
    Spausdinti(A, B, n, m);
    return 0;
}
//--- Funkcijos ---
void Skaityti(int A[], int B[], int &n, int &m){
    ifstream fd(CDfd);
    fd >> n;
    if(n > 100 || n < 1){
        n = -1;
    }
    for(int i = 0; i < n; ++i){
        fd >> A[i];
    }
    fd >> m;
    if(m > 100 || m < 1){
        m = -1;
    }
    for(int i = 0; i < m; ++i){
        fd >> B[i];
    }
    fd.close();
}
void Spausdinti(int A[], int B[], int &n, int &m){
    ofstream fr(CDfr);
    if(n > 100 || m > 100 || n < 0 || m < 0){
        fr << "Patikrinkite ivestus duomenis." << endl;
        fr << "n [1 - 100], m [1 - 100]";
        fr.close();
    }
    if(m > 0){
        fr << "Reikalingi varztai:" << endl;
        while(m > 0){
            int kiek = 0, x = 0;
            for(int i = 0; i < m; ++i){
                if(B[i] == B[x]) ++kiek;
            }
            fr << kiek << " " << B[0] << endl;
            while(kiek > 0){
                for(int i = 0; i < m; ++i) B[i] = B[i + 1];
                --m;
                --kiek;
            }
        }
    }
    else fr << "Varztu nereikia." << endl;
    if(n > 0){
        fr << "Reikalingos verzles:" << endl;
        while(n > 0){
            int kiek = 0, x = 0;
            for(int i = 0; i < n; ++i){
                if(A[i] == A[x]) ++kiek;
            }
            fr << kiek << " " << A[0] << endl;
            while(kiek > 0){
                for(int i = 0; i < n; ++i) A[i] = A[i + 1];
                --n;
                --kiek;
            }
        }
    }
    else fr << "Verzliu nereikia.";
    fr.close();
}
int Tikrinimas(int A[], int B[], int &n, int &m){
    for(int i = 0; i < n; ++i){
        int x = 0;
        while(x < m){
            if(A[i] == B[x]){
                for(int j = i; j < n; ++j) A[j] = A[j + 1];
                --n;
                for(int j = x; j < m; ++j) B[j] = B[j + 1];
                --m;
                x = 0;
            }
            else ++x;
        }
    }
}
int Rikiavimas(int A[], int B[], int n, int m){
    for(int i = 0; i < n - 1; ++i){
        for(int j = i + 1; j < n; ++j){
            if(A[i] > A[j]){
                int temp = A[j];
                A[j] = A[i];
                A[i] = temp;
            }
        }
    }
    for(int i = 0; i < m - 1; ++i){
        for(int j = i + 1; j < m; ++j){
            if(B[i] > B[j]){
                int temp = B[i];
                B[i] = B[j];
                B[j] = temp;
            }
        }
    }
}

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