1. Se consideră o matrice A cu m linii și n coloane. Să se determine cel mai mic element, cel mai mare element par, cel mai mic număr prim de pe linia L (citită de la tastatură) și cel mai mare pătrat perfect din A.
2. Se consideră o matrice A cu m linii și n coloane. Să se determine câte coloane conțin doar numere pozitive și câte linii conțin cel puțin două numere pare.
Răspunsuri la întrebare
Răspuns: La a) (am considerat ca vei folosi doar numere naturale, avand in vedere ca ceri numere prime si patrate perfecte).Vezi ca ti-am luat n linii, m coloane ca nu-s obisnuit invers.Modifici tu daca e neaparat cum zice in enunt.
#include <iostream>
#include <cmath>
using namespace std;
unsigned int n,m,i,j,L,minim=100000,maxim_par;
unsigned int prim(unsigned int b)
{
unsigned int d;
if(b<=1)
return 0;
if(b==2)
return 1;
for(d=2;d*d<=b;d++)
if(b%d==0)
return 0;
return 1;
}
unsigned int pp(unsigned int c)
{
return (float)sqrt(c)*(float)sqrt(c)==c;
}
int main()
{
cout<<"n="; cin>>n;
cout<<"m="; cin>>m;
unsigned int A[n][m];
for(i=0;i<n;i++)
for(j=0;j<m;j++)
cin>>A[i][j];
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(A[i][j]<minim)
minim=A[i][j];
if(A[i][j]%2==0)
{
if(A[i][j]>maxim_par)
{
maxim_par=A[i][j];
}
}
}
}
cout<<"Elementul minim al matricii este: "<<minim<<endl;
cout<<"Elementul par maxim al matricii este: "<<maxim_par<<endl;
minim=100000;
cout<<"L="; cin>>L;
for(j=0;j<m;j++)
{
if(prim(A[L-1][j]))
{
if(A[L-1][j]<minim)
minim=A[L-1][j];
}
}
cout<<"Cel mai mic numar prim de pe linia "<<L<<" este: "<<minim;
cout<<endl;
unsigned int maxim_pp=0;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(pp(A[i][j]))
{
if(A[i][j]>maxim_pp)
{
maxim_pp=A[i][j];
}
}
}
}
cout<<"Cel mai mare patrat perfect din matrice este "<<maxim_pp;
return 0;
}
Explicație: La b).La fel, ti-am luat n linii, m coloane.Modifici tu.
#include <iostream>
using namespace std;
unsigned int n,m,i,j,total_col,total_linii,ok,nrpare;
int main()
{
cout<<"n="; cin>>n;
cout<<"m="; cin>>m;
int A[n][m];
for(i=0;i<n;i++)
for(j=0;j<m;j++)
cin>>A[i][j];
for(j=0;j<m;j++)
{
ok=1;
for(i=0;i<n;i++)
{
if(A[i][j]<0)
{
ok=0;
break;
}
}
if(ok)
{
total_col++;
}
}
for(i=0;i<n;i++)
{
nrpare=0;
for(j=0;j<m;j++)
{
if(A[i][j]%2==0)
{
nrpare++;
}
}
if(nrpare>=2)
{
total_linii++;
}
}
cout<<"Numarul coloanelor care contin doar numere pozitive: "<<total_col;
cout<<endl;
cout<<"Numarul liniilor care contin cel putin 2 numere pare: "<<total_linii;
return 0;
}
Daca declari o variabila de tip "unsigned int" acea variabila e de tip numar natural.Practic unsigned tradus din engleza e "fara semn".Deci variabila de tip unsigned int poate retine o valoare de la 0 la vreo 16 miliarde.
unsigned int - numar natural