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
Răspunsuri la întrebare
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