Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di francesco.ricca
    Registrato dal
    Feb 2018
    residenza
    Napoli
    Messaggi
    13

    [C++]Programma che ricerchi il minimo sotto la diagonale secondaria di una matrice (esclusa la diagonale)

    Salve a tutti, eccomi qui con il mio secondo topic a seguito di difficoltà con questo codice! Qualcuno sarebbe in grado di correggermi/aiutarmi?
    devo trovare il minimo dei valori (di una matrice quadrata) posti al di sotto della diagonale, per intenderci:

    - - -
    - - X
    - X X

    vi ringrazio in anticipo

    ecco il codice che avevo fatto:
    codice:
    int min (int mat[50][50], int N){
        
        int i,j;
        i=j=1;
        int min=mat[1][2];
        
        for (int i=1;i<N;i++)    {
                
      for (int j=i+1;j<N;j++){
            
    
    
                if (min>mat[i][j]){
                    min=mat[i][j];
                }
            }
        }
        return min;
    }
    "Chi dice che è impossibile non dovrebbe disturbare chi c'è la sta facendo."
    -Albert Einstein

  2. #2
    Utente di HTML.it L'avatar di francesco.ricca
    Registrato dal
    Feb 2018
    residenza
    Napoli
    Messaggi
    13
    ho risolto (credo) in questo modo:
    codice:
    int min (int mat[50][50], int N){
    	
    	int i,j;
    	i=j=1;
    	int min=mat[1][2];
    	
    	for (int i=1;i<N;i++)	{
    			
      for (int j=N-i;j<N;j++){
    		
    
    
    			if (min>mat[i][j]){
    				min=mat[i][j];
    			}
    		}
    	}
    	return min;
    }
    se qualcuno dovesse notare qualche errore, potreste segnalarmelo? grazie!
    "Chi dice che è impossibile non dovrebbe disturbare chi c'è la sta facendo."
    -Albert Einstein

  3. #3
    Due cose che ho notato:
    1) Il pezzo
    codice:
    int i, j;
    i=h=1;
    è inutile perché nei for ri-dichiari le variabili, per cui quelle di questo pezzettino non sono mai usate, essendo nascoste da quelle nuove.

    2) Facendo così
    codice:
     int min=mat[1][2];
    inizializzi il minimo a una quantità che non è fra quelle tra cui devi calcolare il minimo (a meno di matrici 2x2), per cui se l'elemento (1,2) dovesse essere minore di qualsiasi altro elemento fra quelli sotto la diagonale secondaria, avresti un valore sbagliato come risultato.

  4. #4
    Utente di HTML.it L'avatar di francesco.ricca
    Registrato dal
    Feb 2018
    residenza
    Napoli
    Messaggi
    13
    Quote Originariamente inviata da scimmiaparlante Visualizza il messaggio
    Due cose che ho notato:

    2) Facendo così
    codice:
     int min=mat[1][2];
    inizializzi il minimo a una quantità che non è fra quelle tra cui devi calcolare il minimo (a meno di matrici 2x2), per cui se l'elemento (1,2) dovesse essere minore di qualsiasi altro elemento fra quelli sotto la diagonale secondaria, avresti un valore sbagliato come risultato.
    mi hai salvato! Ho inizializzato al caso mat[1][N-1] che è cosi valido per ogni matrice! Grazie
    "Chi dice che è impossibile non dovrebbe disturbare chi c'è la sta facendo."
    -Albert Einstein

Tag per questa discussione

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.