Problems

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 9

1.

Se citeste o matrice cu n linii si m coloane(n<=100, m<=200).Sa se calculeze suma


elementelor
pare din matrice, stiind ca matricea are toate elementele de tip intreg.
#include <iostream>
using namespace std;
int main()
{
int a[101][201],n,m,s=0;
cin>>n>>m;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
cin>>a[i][j];
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
if(a[i][j]%2==0)
s=s+a[i][j];
cout<<s;
return 0;
}
2.
Se citeste o matrice cu n lini si m coloane.Sa se tiparasca minimul de pe fiecare
linie
si maximul de pe fiecare coloana.
#include <iostream>
using namespace std;
int main()
{
int a[500][500],n,m,amin,amax;
cin>>n>>m;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
cin>>a[i][j];
for(int i=0;i<n;i++)
{
amin=INT_MAX;
for(int j=0;j<m;j++)
if(amin>a[i][j])
amin=a[i][j];
cout<<amin<<" ";
}
cout<<endl;
for(int j=0;j<m;j++)
{
amax=INT_MIN;
for(int i=0;i<n;i++)
if(amax<a[i][j])
amax=a[i][j];
cout<<amax<<" ";
}
return 0;
}
3.
Se citeste o matrice cu n lini, m coloane(n,m<=200) numere intregi.Sa se numere
cate
valori de 0 se gasesc pe bordura exterioara a matricei.
#include <iostream>
using namespace std;
int main()
{
int a[500][500],n,m,nr=0;
cin>>n>>m;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
cin>>a[i][j];
//prima linie
for(int j=0;j<m;j++)
if(a[0][j]==0)
nr++;
//ultima linie
for(int j=0;j<m;j++)
if(a[n-1][j]==0)
nr++;
//prima coloana de la al doilea element pana la penultimul
for(int i=1;i<=n-2;i++)
if(a[i][0]==0)
nr++;
//ultima coloana de la al doilea element pana la penultimul
for(int i=1;i<=n-2;i++)
if(a[i][n-1]==0)
nr++;
cout<<nr;
return 0;
}
4.
Se citeste o matrice cu n lini, m coloane(n,m<=200), numere intregi.Sa se calculeze

media aritmetica a numerelor pare situate pe linii impare.


#include <iostream>
using namespace std;
int main()
{
int a[500][500],n,m,nr;
float ma,s;
cin>>n>>m;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
cin>>a[i][j];
for(int i=1;i<n;i=i+2)
{
s=0;
nr=0;
for(int j=0;j<m;j++)
if(a[i][j]%2==0)
{
s=s+a[i][j];
nr++;
}
ma=s/nr;
cout<<ma<<" ";
}
return 0;
}
5.
Sa se permute fiecare linie cu o pozitie la stanga.
#include <iostream>
using namespace std;
int main()
{
int a[100][100],n,m,aux;
cin>>n>>m;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
cin>>a[i][j];
for(int i=0;i<n;i++)
{
aux=a[i][0];
for(int j=1;j<m;j++)
a[i][j-1]=a[i][j];
a[i][m-1]=aux;
}
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}
6.
Sa se elimine o linie din matrice.
#include <iostream>
using namespace std;
int main()
{
int a[100][100],n,m,x;
cin>>n>>m>>x;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
cin>>a[i][j];

for(int i=x;i<n-1;i++)
{
for(int j=0;j<m;j++)
{
a[i][j]=a[i+1][j];
}
n--;
}

for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}
7.Incarcarea unei matrici:
Se citesc de la tastatura 2 numere naturale n si m.Sa se construiasca o matrice cu
n linii si m coloane, matricea incarcata astfel:
n=3 m=4
1 2 3 4
5 6 7 8
9 10 11 12
#include <iostream>
using namespace std;
int main()
{
int n,m,a[100][100],i,j,k=1;
cin>>n>>m;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
a[i][j]=k;
k++;
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}
8.
n=3 m=4
0 3 6 9
1 4 7 10
2 5 8 11
#include <iostream>
using namespace std;
int main()
{
int n,m,a[100][100],i,j,k=0;
cin>>n>>m;
for(j=0;j<m;j++)
for(i=0;i<n;i++)
{
a[i][j]=k;
k++;
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}
9.
n=3 m=4
0 2 4 6
8 10 12 14
16 18 20 22
#include <iostream>
using namespace std;
int main()
{
int n,m,a[100][100],i,j,k=0;
cin>>n>>m;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
a[i][j]=k;
k=k+2;
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}
10.
n=2 m=4
0 4 16 36
64 100 144 196
#include <iostream>
using namespace std;
int main()
{
int n,m,a[100][100],i,j,k=0;
cin>>n>>m;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
a[i][j]=k*k;
k=k+2;
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}
11.
Scrieti un program c++ care citeste de la tastatura doua numere naturale din
intervalul
[2,20], n si k, si construieste in memorie un tablou bidimensional cu n linii si
n*k coloane,
numerotate incepand cu 1, astfel incat fiecare linie i(i∈[1,n]) memoreaza un sir
crescator
de termeni cu proprietatea ca primul termen este i, fiecare valoare apare in sir de
exact k
ori si oricare doi termeni alaturati au valori egale sau consecutive.Programul
afiseaza pe
ecran tabloul construit, fiecare linie a tabloului pe cate o linie a ecranului, cu
valorile
aflate pe aceeasi linie separate prin cate un spatiu.
n=5 k=3
=> 1 1 1 2 2 2 3 3 3 4 4 4
2 2 2 3 3 3 4 4 4 5 5 5
3 3 3 4 4 4 5 5 5 6 6 6
4 4 4 5 5 5 6 6 6 7 7 7
5 5 5 6 6 6 7 7 7 8 8 8
#include <iostream>
using namespace std;
int main()
{
int n,k,a[21][401],x;
cin>>n>>k;
for(int i=1;i<=n;i++)
{
x=i;
for(int j=1;j<=n*k;j++)
{
a[i][j]=x;
if(j%k==0)
x++;
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n*k;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}
12.
Se citeste o matrice patratica cu n linii si coloane(n<=500).Sa se calculeze:
a)maximul dintre elementele situate pe diagonala principala
b)media aritmetica a elementelor situate pe diagonala secundara
c)modulul diferentei dintre elementele de deasupra diagonalei principale si
elementele de
sub diagonala principala
d)minimul elementelor situate deasupra diagonalei secundare
e)maximul elementelor situtate sub diagonala secundara
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int x[501][501],n,s=0,nr=0,s1=0,s2=0;
int a=INT_MIN,c,d=INT_MAX,e=INT_MIN;
float b;
cin>>n;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
cin>>x[i][j];
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(i==j && x[i][j]>a)
a=x[i][j];
if(j==n-i-1)
{
s=s+x[i][j];
nr++;
}
if(i<j)
s1=s1+x[i][j];
if(i>j)
s2=s2+x[i][j];
if(i+j<n-1 && x[i][j]<d)
d=x[i][j];
if(i+j>n-1 && x[i][j]>e)
e=x[i][j];
}
}
c=abs(s1-s2);
b=float(s)/nr;
cout<<a<<endl<<b<<endl<<c<<endl<<d<<endl<<e;
return 0;
}
13.
Se citeste un numar natural n(n<=500).Sa se incarce matricea cu n linii si coloane
astfel:
Nord=1,Est=2,Sud=3,Vest=4,diagonale=0.
#include <iostream>
using namespace std;
int main()
{
int x[501][501],n;
cin>>n;
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(i<j && i+j<n-1)
x[i][j]=1;
if(i<j && i+j>n-1)
x[i][j]=2;
if(i>j && i+j>n-1)
x[i][j]=3;
if(i>j && i+j<n-1)
x[i][j]=4;
if(i==j)
x[i][j]=0;
if(j==n-i-1)
x[i][j]=0;
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
cout<<x[i][j]<<" ";
cout<<endl;
}
return 0;
}
14.
Scrieti un program care citeste de la tastatura doua valori naturale m si
n(m,n<=10), si
apoi citeste m*n numere naturale, reprezentand elemetele unei matrice cu m linii si
n coloane.
Programul determina valorile minime de pe fiecare linie.
#include <iostream>
using namespace std;
int main()
{
int a[11][11],n,m,amin;
cin>>m>>n;
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
cin>>a[i][j];
for(int i=0;i<m;i++)
{
amin=INT_MAX;
for(int j=0;j<n;j++)
{
if(amin>a[i][j])
amin=a[i][j];
}
cout<<amin<<" ";
}
return 0;
}
15.
Se da o matrice patratica cu n linii si coloane.Se da un numar k care reprezinta un
numar de
linie. Sa se permute spre stanga toate elementele de pe acea linie care sunt sub
diagonala
principala.
#include <iostream>
using namespace std;
int main()
{
int a[100][100],n,aux,k;
cin>>n>>k;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
cin>>a[i][j];
aux=a[k][0];
for(int j=1;j<k;j++)
a[k][j-1]=a[k][j];
a[k][k-1]=aux;
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}
16.
Se citeste o matrice patratica(n este impar), sa se elimine linia din mijloc.
#include <iostream>
using namespace std;
int main()
{
int a[500][500],k,n,m;
cin>>n;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
cin>>a[i][j];
m=n;
k=n/2;
for(int i=k;i<n-1;i++)
for(int j=0;j<m;j++)
a[i][j]=a[i+1][j];
n--;
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
cout<<k;
return 0;
}

You might also like