Informatică, întrebare adresată de mayahart23, 8 ani în urmă

Scrieţi programul C/C++ care citeşte de la tastatură două numere naturale m şi n (1≤m≤50, 1≤n≤50) şi m*n numere naturale de cel mult 5 cifre ce reprezintă elementele unui tablou bidimensional, şi afişează pe ecran cel mai mic număr care se poate forma din cifrele nenule ale elementului minim și elementului maxim.
Exemplu: pentru m=3, n=4 şi matricea de mai jos 23 456 16 571
17 43 45 65
34 92 71 19 se va afişa 11577


MariusCelTrifan: In putin timp iti rezolv toate problemele, asa ca stai putin

Răspunsuri la întrebare

Răspuns de MariusCelTrifan
1

Răspuns:

#include <iostream>

using namespace std;

int main()

{

   unsigned int n,m,i,j,mx,mn,S=0;

   cin>>n>>m;

   int a[n][m],b[10]={0};

   for(i=0;i<n;i++)

       for(j=0;j<m;j++)

       cin>>a[i][j];

   mx=a[0][0];

   mn=a[0][0];

   for(i=0;i<n;i++)

       for(j=0;j<m;j++)

   {

       if(mx<a[i][j])

           mx=a[i][j];

       if(mn>a[i][j])

           mn=a[i][j];

   }

   while(mx!=0)

   {

       S=mx%10;

       b[S]=b[S]+1;

       mx=mx/10;

   }

   while(mn!=0)

   {

       S=mn%10;

       b[S]=b[S]+1;

       mn=mn/10;

   }

   S=0;

       for(i=1;i<10;i++)

       if(b[i]!=0)

       while(b[i]>0)

   {

    S=S*10+i;

    b[i]--;

   }

   cout<<S;

   return 0;

}

Explicație:

Jos de tot ai gresit, de fapt afiseaza 11567


mayahart23: oh, înseamnă ca au gresit cei care au făcut problema, mersi!
Alte întrebări interesante