Problems
Problems
Problems
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;
}