Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    7

    [C] Trovare valori uguali inseriti all'interno di una matrice

    Il codice per la memoria allocata dinamicamente è questo:
    codice:
    /*
      Alloca la memoria per una matrice di dimensione n e ne restituisce
      un puntatore.
     */
    TMatrice alloca_matrice(int n)
    {
      TMatrice matrice;
      int i;
    
      /* alloco il vettore delle righe. Ogni elemento di questo vettore è un puntatore */
      if(!(matrice = (TMatrice) malloc (n * sizeof(int *)))) {
     		fprintf(stderr,"Errore di allocazione per la matrice\n");
    		return 0;
    	}
    
     /* per ogni riga alloco le colonne */
      for (i=0; i<n; i++) {
        if(!(matrice[i] = (int *) malloc (n * sizeof(int)))) {
    		fprintf(stderr,"Errore di allocazione per la i-esima posizione \"%d\"\n",i);
    		return 0;
    		}
       }
      return matrice;
    }
    
    /*
      Libera la memoria allocata da alloca_matrice
     */
    void libera_matrice(TMatrice *matrice, int n)
    {
      int i;
    
      for (i=0; i<n; i++)  
        free((*matrice)[i]);
      free(*matrice);
    }
    
    void inserimento(TMatrice matrice, int n){
     
     int i,j;
     
     for(i=0 ; i<n ; i++)
       for(j=0 ; j<n ; j++)
         {
           /*printf("Inserisci elemento di riga %d e colonna %d: " ,i , j);*/
           scanf("%d",&matrice[i][j]);
         }
    }
    
    void stampa_matrice(TMatrice matrice, int n){
    
      int i,j;
    
      for (i=0;i<n;i++)
        {
          for (j=0;j<n;j++)
    	printf("%d ", matrice[i][j]);
          printf("\n");
        }
    }
    Devo scrivere una funzione per trovare uguali inseriti nella matrice, sia in orizzonatale che verticale.
    Esempio
    1 2 1
    3 4 5
    6 2 8

    deve trovare gli uni in verde che sono uguali e i due rossi, in modo poi da richiamare una funzione che mi dice di non_annerire il numero che c'è trai 2 numeri uguali, in questo caso il 2 rosso stesso e il 4!!
    Suggerimenti!!!!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    7
    Così funziona :

    codice:
    void panino_imbottitorighe(TMatrice matrice, int n) {
    
      int i,j;
      for (i=0; i<n; i++)
              for(j=0; (j+2)<n; j++)
          if(matrice[i][j] == matrice[i][j+2]) /* controlla se i valori inseriti sono uguali sulle righe*/   
                printf("Ho trovato valori uguali\n");
    	  else 
    	    printf("I Valori sono diversi\n");       
    }
    
    
    void panino_imbottitocolonne(TMatrice matrice, int n){
    
      int i,j;
      for(j=0; j<n; j++)
           for(i=0;(i+2)<n;i++)
          if(matrice[i][j] == matrice[i+2][j]) /* controlla se i valori inseriti sono uguali sulle colonne*/   
                printf("Ho trovato valori uguali\n");
    	  else 
    	    printf("I Valori sono diversi\n");
    }
    ma secondo voi è più veloce fare 2 funzioni così separate o una unica, o non cambia niente!!??

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 © 2025 vBulletin Solutions, Inc. All rights reserved.