Salve ho il seguente esercizio da svolgere:
Si implementi in C++ una funzione che, ricevuta una matrice quadrata M di dimensione n x n, e due array A e B, entrambi di dimensione k, stampi prendendo la posizione individuate dagli elementi A e B (pressi a coppie) le sottomatrici (3*3) corrispondenti, ad esempio:
Dovrebbe prendere prima le coordinare 1 e 0 (A e B) ed stampare la sottomatrice 3*3:codice:int M[N][N] = { {1,3,3,4,5}, {9,2,3,1,5}, {1,2,5,4,5}, {7,2,3,0,5}, {1,2,3,4,7}}; int A[K] = {1,2,4}; int B[K] = {0,2,4};
Questo è il codice che io ho tirato fuori:codice:9 2 3 1 2 5 7 2 3
codice:#include <iostream> using namespace std; const int n=6; const int k=3; int stampaSotto (int [n][n],int,int); void stampaMatrice (int [n][n]); int main() { int a[][n]={{1,2,3,4,5,6}, {7,8,9,5,6,9}, {3,4,5,6,7,8}, {1,2,2,2,2,2}, {3,4,5,6,7,8}, {1,1,1,1,1,1}}; int b[k]={0,1,2}; int c[k]={1,2,3}; stampaMatrice (a); cout<<endl; stampaSotto (a,b,c); return 0; } void stampaMatrice (int a[n][n]){// stampa la matrice ordinaria for (int i=0;i<n; i++) { for (int j=0;j<n;j++) cout<<a[i][j]<<" "; cout<<endl; } } int stampaSotto (int a[][n],int b, int c){ for(int i=b;i<b+3;i++) { for(int j=c;j<c+3;j++) cout<<a[i][j]; } cout<<endl; }

Rispondi quotando