Cum pot sa rotesc o matrice 90 ,180 si 360 de grade ? (c++)
Lia96:
Presupun ca interschimbi liniile cu coloanele.
Răspunsuri la întrebare
Răspuns de
8
Am facut programul cu urmatoarele presupuneri
Pentru matricea
1 2
3 4
5 6
rotatie dreapta
5 3 1
6 4 2
rotatie stanga
2 4 6
1 3 5
Rotatie 180 grade
6 5
4 3
2 1
Rotatie 360 grade este matricea insasi, obtii acelasi lucru
Imagineaza-ti ca si cum ai roti o bucata de bloc sau lego si o sa intelegi
#include <iostream>
using namespace std;
void afisare(int a[100][100],int nr_linii,int nr_col){
int i,j;
for(i=0;i<nr_linii;i++){
for(j=0;j<nr_col;j++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}
}
int main(){
int a[100][100],n,m,i,j,rot90_dreapta[100][100],rot90_stanga[100][100],rot180[100][100];
cout<<"Introduceti dimensiunile:";
cin>>n>>m;
cout<<"Introduceti matricea:\n";
for(i=0;i<n;i++){
for(j=0;j<m;j++){
cin>>a[i][j];
}
}
for(i=0;i<m;i++){
for(j=0;j<n;j++){
rot90_dreapta[i][j]=a[n-1-j][i];
}
}
cout<<"Matrice rotita la 90 grade dreapta\n";
afisare(rot90_dreapta,m,n);
for(i=0;i<m;i++){
for(j=0;j<n;j++){
rot90_stanga[i][j]=a[j][m-1-i];
}
}
cout<<"Matrice rotita la 90 grade stanga\n";
afisare(rot90_stanga,m,n);
for(i=0;i<n;i++){
for(j=0;j<m;j++){
rot180[i][j]=a[n-1-i][m-1-j];
}
}
cout<<"Matrice rotita la 180 grade\n";
afisare(rot180,n,m);
cout<<"Matrice rotita la 360 grade\n";
afisare(a,n,m);
return 0;
}
Pentru matricea
1 2
3 4
5 6
rotatie dreapta
5 3 1
6 4 2
rotatie stanga
2 4 6
1 3 5
Rotatie 180 grade
6 5
4 3
2 1
Rotatie 360 grade este matricea insasi, obtii acelasi lucru
Imagineaza-ti ca si cum ai roti o bucata de bloc sau lego si o sa intelegi
#include <iostream>
using namespace std;
void afisare(int a[100][100],int nr_linii,int nr_col){
int i,j;
for(i=0;i<nr_linii;i++){
for(j=0;j<nr_col;j++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}
}
int main(){
int a[100][100],n,m,i,j,rot90_dreapta[100][100],rot90_stanga[100][100],rot180[100][100];
cout<<"Introduceti dimensiunile:";
cin>>n>>m;
cout<<"Introduceti matricea:\n";
for(i=0;i<n;i++){
for(j=0;j<m;j++){
cin>>a[i][j];
}
}
for(i=0;i<m;i++){
for(j=0;j<n;j++){
rot90_dreapta[i][j]=a[n-1-j][i];
}
}
cout<<"Matrice rotita la 90 grade dreapta\n";
afisare(rot90_dreapta,m,n);
for(i=0;i<m;i++){
for(j=0;j<n;j++){
rot90_stanga[i][j]=a[j][m-1-i];
}
}
cout<<"Matrice rotita la 90 grade stanga\n";
afisare(rot90_stanga,m,n);
for(i=0;i<n;i++){
for(j=0;j<m;j++){
rot180[i][j]=a[n-1-i][m-1-j];
}
}
cout<<"Matrice rotita la 180 grade\n";
afisare(rot180,n,m);
cout<<"Matrice rotita la 360 grade\n";
afisare(a,n,m);
return 0;
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă