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:

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};
Dovrebbe prendere prima le coordinare 1 e 0 (A e B) ed stampare la sottomatrice 3*3:
codice:
9 2 3
1 2 5
7 2 3
Questo è il codice che io ho tirato fuori:
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;
}