Indice del forum
 FAQ   Cerca   Lista utenti   Gruppi   Registrati   Profilo   Messaggi privati   Log in 
[C] hitori problema con cambiamento valori nella matrice

 
Nuovo argomento   Rispondi    Indice del forum -> Programmazione: c#, c++, Java, HTML, PHP, Javascript...
Precedente :: Successivo  

Autore

Messaggio

garfa
Bravino


Registrato: 09/06/09 15:48
Messaggi: 14

MessaggioInviato: Lun Giu 22, 2009 11:16 pm    Oggetto: [C] hitori problema con cambiamento valori nella matrice

Rispondi citando


Ho modificato decisamente l'intenzione sul progetto, e lo sto cercando di risolvere tramite matrici,
questo è il codice:

Codice:

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

typedef int** TMatrice; /* tipo matrice,  vettore di puntatori */

/*============================ Dichiarazione delle funzioni (prototipi) ===============================*/

TMatrice alloca_matrice(int n);                         /* Alloca memoria per una matrice */
void libera_matrice(TMatrice *matrice, int n);          /* Libera la memoria allocata */
void inserimento(TMatrice matrice, int n);
void stampa_matrice (TMatrice matrice , int n);
void panino_imbottitorighe(TMatrice matrice, int n);
void panino_imbottitocolonne(TMatrice matrice, int n);

/*=====================================================================================================*/

/*==================== MAIN ===================== */

int main()
{
  TMatrice matrice;
  int n;

  printf("Dimensione griglia?\n");
  scanf("%d" , &n);

  matrice = alloca_matrice(n);
 
  inserimento(matrice, n);

  panino_imbottitorighe(matrice,n);
  panino_imbottitocolonne(matrice,n);

  printf("\n");
  stampa_matrice(matrice, n);
 
  libera_matrice(&matrice, n);
  return 0;
}


/*
  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);
}

/* Inserimento dei valori all'interno della matrice*/
void inserimento(TMatrice matrice, int n){
 
 int i,j;
 
 for(i=0 ; i<n ; i++)
   for(j=0 ; j<n ; j++)
     {
       scanf("%d",&matrice[i][j]);
     }
 printf("\n");
}

/* stampa del risultato della matrice */
/* in realtà alla fine dovrà stampare la metrice con degli zero che corrispondono alle caselle annerite*/
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");
    }
}

/*===================== implementazione dell tecniche di risoluzione ================*/
/* numero non annerito = -1- */
/* numero annerito = *1*     */
/* numero che non si sa ancora se annerito o no = 1 */




/* [PI]  PANINO IMBOTIITO*/

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("%s%d%s%d%s", "no (" , i , ", " ,  j+1,") : PI\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("%s%d%s%d%s", "no (" , i+1 , ", " ,  j,") : PI\n");
}


Adesso mi sono un po bloccato sull'implementazione di una funzione che devo trovare eventuali valori uguali su righe e colonne dopo aver eseguito la funzioni PI.
Cioè se trovo valori uguali a un numero che non deve essere annerito sulla stessa riga e stessa colonna questi vanno anneriti. (si chiama : SB)
Tra l'altro servirebbe una funzione annerisci e una non_annerire che devo vedere come fare.

Top

Profilo Invia messaggio privato

Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> Programmazione: c#, c++, Java, HTML, PHP, Javascript... Tutti i fusi orari sono GMT
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi
Forum del sito TuttoMontefalco.it - Umbria - Italy topic RSS feed 


Torna al sito TuttoMontefalco.it


Powered by phpBB © 2001, 2005 phpBB Group
phpbb.it

SoftGreen 1.1 phpBB theme by DaTutorials.com
Copyright © DaTutorials 2005