Informatică, întrebare adresată de Utilizator anonim, 9 ani în urmă

Ajutor!
Realizati un program c++.

Se dau două şiruri cu elemente numere naturale. Determinaţi câte dintre elementele primului şir sunt mai mari decât toate elementele celui de-al doilea şir.Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spaţii, reprezentând elementele primului şir. Apoi citeşte numărul m şi m numere naturale, separate prin spaţii, reprezentând elementele celui de-al doilea şir.Programul afișează pe ecran numărul C, reprezentând numărul de elemente din primul şir care sunt mai mari decât toate elementele celui de-al doilea şir.
Restricţii şi precizări
1 ≤ n,m ≤ 100
elementele celor două şiruri sunt mai mici decât 10000

Răspunsuri la întrebare

Răspuns de CRG
6
Salut. O idee ar fi sa sortezi descrescator ultimul sir, astfel sir2[1] va fi elementul maxim din acel sir, iar tot ce trebuie sa faci este sa comperi fiecare element din sir1 cu sir2[1].

#include <iostream>

using namespace std;

int main()
{
    int n, sir1[1000], m, sir2[1000], i, j, aux;
    cout << "n="; cin >> n;
    for (i=1; i<=n; i++)
        cin >> sir1[i];

    cout << "m="; cin >> m;
    for (i=1; i<=m; i++)
        cin >> sir2[i];

    // sortare descrescatoare sir2
    for (i=1; i<m; i++)
        for (j=i+1; j<=m; j++)
            if (sir2[i] < sir2[j]){
                aux = sir2[i];
                sir2[i] = sir2[j];
                sir2[j] = aux;
            }

    //comparare
    for (i=1; i<=n; i++)
        if (sir1[i] > sir2[1])
            cout << sir1[i] << " ";

    return 0;
}



Utilizator anonim: multumesc
Alte întrebări interesante