Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    C++ Stampa Sottomatrice

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

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    43
    ho moficato la funzione stampaSotto,se vuoi puoi eliminare qualche -cout-
    con dei cicli -for-,ciao.
    codice:
    #include <iostream>
    using namespace std;
    const int n=6;
    const int k=3;
    int stampaSotto (int a[n][n],int b[k],int c[k]);
    void stampaMatrice (int [n][n]);
    int main() {
    
       int a[n][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);
    
    getch();
    	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][n],int b[k],int c[k])
    {
    
    for(int i=0;i<3;i++)
    {
    int bb=b[i];
    int cc=c[i];
            cout << a[bb][cc];
    	cout << a[bb][cc+1];
    	cout << a[bb][cc+2];
    	out <<endl;
    	cout << a[bb+1][cc];
    	cout << a[bb+1][cc+1];
    	cout << a[bb+1][cc+2];
    	cout <<endl;
    	cout << a[bb+2][cc];
    	cout << a[bb+2][cc+1];
    	cout << a[bb+2][cc+2];
    	cout << endl;
    	cout<<endl;
    
    }
    cout<<endl;
    return 0;
    }

  3. #3
    grazie dal tuo aiuto!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.