Untitled

mail@pastecode.io avatar
unknown
plain_text
2 years ago
1.8 kB
2
Indexable
#include <iostream>
#include <fstream>
using namespace std;

void tablou(int n, int v[]) {
    for (int i = 0; i < n; i++) {
        cout << "Introduceti elementul " << i+1 << ": ";
        cin >> v[i];
    }
}

void sortareCrescatoare(int n, int v[]) {
    for (int i = 0; i < n - 1; i++) {
        for (int j = i + 1; j < n; j++) {
            if (v[i] > v[j]) {
                int temp = v[i];
                v[i] = v[j];
                v[j] = temp;
            }
        }
    }
}

void sortareDescrescatoare(int n, int v[]) {
    for (int i = 0; i < n - 1; i++) {
        for (int j = i + 1; j < n; j++) {
            if (v[i] < v[j]) {
                int temp = v[i];
                v[i] = v[j];
                v[j] = temp;
            }
        }
    }
}

void intersectie(int na, int a[], int nb, int b[], int c[], int& nc) {
    nc = 0;
    int i = 0, j = 0;

    while (i < na && j < nb) {
        if (a[i] < b[j]) {
            i++;
        } else if (a[i] > b[j]) {
            j++;
        } else {
            c[nc] = a[i];
            nc++;
            i++;
            j++;
        }
    }
}

int main() {
    int na, nb;
    cout << "Introduceti numarul de elemente pentru tabloul a: ";
    cin >> na;
    cout << "Introduceti numarul de elemente pentru tabloul b: ";
    cin >> nb;
    
    int a[100], b[100], c[100];
    tablou(na, a);
    tablou(nb, b);

    sortareCrescatoare(na, a);
    sortareDescrescatoare(nb, b);

    int nc;
    intersectie(na, a, nb, b, c, nc);

    ofstream outFile("comune.out");
    if (nc > 0) {
        for (int i = 0; i < nc; i++) {
            outFile << c[i] << " ";
        }
    } else {
        outFile << "Nu exista";
    }
    outFile.close();

    cout << "Elementele comune au fost scrise in fisierul comune.out.\n";
    
    return 0;
}