Informatică, întrebare adresată de andreiavram37, 9 ani în urmă

Cerinţa

Se dă o matrice cu n linii şi m coloane şi elemente numere naturale. Să se determine cea mai mare valoare care apare în matrice de cel puțin două ori.
Date de intrare

Programul citește de la tastatură numerele n şi m, iar apoi n*m numere naturale, separate prin spaţii, reprezentând elementele matricei, linie cu linie.
Date de ieşire

Programul afișează pe ecran cea mai mare valoare care apare în matrice de cel puțin două ori.
Restricţii şi precizări

1 ≤ m,n ≤ 100
elementele matricei vor fi mai mici decât 1.000.000
dacă în matrice nu se repeta nici o valoare se va afișa IMPOSIBIL

Răspunsuri la întrebare

Răspuns de ArMyFoRHeLL
1
#include <iostream>

using namespace std;

int main()
{
    int mat[100][100],n,m,i,j,maxim=0,k=0;
    cin>>n>>m;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
        cin>>mat[i][j];
     for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
            if(maxim<mat[i][j])
             maxim=mat[i][j];
        for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
            if(maxim==mat[i][j])
             k=k+1;
        if(k>=2)
            cout<<maxim;
        else
            cout<<"IMPOSIBIL";
    return 0;
}



andreiavram37: nu merge chiar asa bine
andreiavram37: incearca pe acest exemplu
andreiavram37: Date de intrare

4 6
4 70 15 23 38 9
1 8 23 23 14 18
17 15 13 38 12 15
3 18 8 23 12 5

Date de ieșire

38
ArMyFoRHeLL: ma uit imediat la el
Zlatan: Tu verifici dacă maximul apare de cel puțin două ori. :)
ArMyFoRHeLL: stiu o sa editez
ArMyFoRHeLL: #include <iostream>

using namespace std;

int main()
{
int mat[101][101],n,m,i,j,maxim,k,y,t;
cin>>n>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
cin>>mat[i][j];
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
maxim=mat[i][j];
k=0;
for(y=1;y<=n;y++)
for(t=1;t<=m;t++)
if(mat[y][t]>maxim)
{
maxim=mat[y][t];
k=k+1;
}
if(k>=2)
{
cout<<maxim;
return 0;
}
else
{
for(y=1;y<=n;y++)
for(t=1;t<=m;t++)
if(mat[y][t]==maxim)
mat[y][t]=-1000001;
}
}
}
cout<<"IMPOSIBIL";
return 0;
}
Răspuns de stassahul
5
#include <iostream>

using namespace std;

int a[101][101],n,m,i,j,Min,Max,p,s;


int main()
{

    cin >> n >> m;

    Min=1000001;
    Max=-1000001;

    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
            {
                cin >> a[i][j];
                if(a[i][j]>Max) Max=a[i][j];
                else if(a[i][j]<Min) Min=a[i][j];
            }

    for(int k=Max;k>=Min;k--)
        for(i=1;i<=n;i++)
            for(j=1;j<=m;j++)
            {

                if(k==a[i][j])
                {

                    if(p!=k) s=0;
                    s++;
                    if(k==p and s==2)
                    {
                        cout << k;
                        return 0;
                    }
                    p=k;
                }
            }

    cout << "IMPOSIBIL";

    return 0;

}

stassahul: Stiu ca e complet urit xd, dar alt cumva nustiu xd.
Alte întrebări interesante