Probleme de informatică
Clasa a IX-a
Elementele de bază C++ (46)
Subprograme predefinite (1)
Fişiere text (2)
Algoritmi elementari (109)
Tablouri unidimensionale (83)
Tablouri bidimensionale (64)
Probleme diverse (13)
Clasa a X-a
Subprograme (funcții) (87)
Şiruri de caractere (49)
Tipul înregistrare (26)
Recursivitate (57)
Alocarea dinamică a memoriei (2)
Liste înlănţuite (25)
Algoritmul lui Lee (1)
Clasa a XI-a
Metoda "Divide et impera" (12)
Metoda Backtracking (85)
Metoda Greedy (6)
Programare dinamică (18)
Grafuri neorientate (37)
Grafuri orientate (38)
Arbori (33)
Clasa a XII-a
Elemente de bază C# (32)
POO în C# (13)
Programare vizuală în C# (10)
Examen de bacalaureat
Competențe digitale
Examen de atestat
Admitere UBB (18)
Din fisierul matrice.in se citesc doua numere naturale n si m (n<=100) si apoi se citeste o matrice cu n linii si m coloane avand elemente numere naturale cu cel mult 6 cifre. Gasiti elementul din matrice care apare pe un numar maxim de linii. Daca sunt mai multe elemente care apar pe un numar maxim de linii, se va lua in considerare cel mai mic dintre ele.
Scrieti si apelati functii pentru:
- citirea matricii
- cautarea unui element pe o linie
- calculul numarului de linii pe care apare un element
Exemplu:
matrice.in
5 6
11 21 33 343 200 15
500 11 21 33 343 6
927 11 21 33 343 33
109 11 35 33 5 42
343 121 221 343 343 343
matrice.out
11
Explicatie: Elementele care apar pe un numar maxim de linii sunt 11, 33 si 343.



#include <fstream>
using namespace std;
ifstream fin("matrice.in");
ofstream fout("matrice.out");

void citire(int A[][101], int &n, int &m)
{
    fin>>n>>m;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
            fin>>A[i][j];
}

int cauta(int A[][101], int m, int i, int x)
{
    for(int j=1;j<=m;j++)
        if(A[i][j]==x) return 1;
    return 0;
}

int pecatelinii(int A[][101], int n, int m, int x)
{
    int c=0;
    for(int i=1;i<=n;i++)
        if(cauta(A,m,i,x)) c++;
    return c;
}

int main()
{
    int A[101][101],n,m,max,maxap=0;
    citire(A,n,m);
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
            if(pecatelinii(A,n,m,A[i][j])>maxap)
                {
                    max=A[i][j];
                    maxap=pecatelinii(A,n,m,A[i][j]);
                }
            else if (pecatelinii(A,n,m,A[i][j])==maxap && A[i][j]<max)
                        max=A[i][j];
    fout<<max;
    return 0;
}

16 oct 2018
Site-ul conține 867 de probleme rezolvate
Copyright © 2009-2018 Muresan Vasile Ciprian