コード例 #1
0
ファイル: sudoku.c プロジェクト: ChrisDeM/C_Language
/********************************************************************
  Funzione ricorsiva di ricerca di una soluzione
********************************************************************/
int trova(int **schema, int dim, int passo)
{
   int i, j, k;

   /* verifica di terminazione */
   if (passo >= dim*dim) {
      return 1;
   }

   /* indici casella corrente */
   i = passo / dim;
   j = passo % dim;
   if (schema[i][j] != 0) {
      /* casella inizialmente piena: nessun tentativo da fare */
      return trova(schema, dim, passo+1);
   }

   /* provo tutti i possibili valori da 1 a dim */
   for (k=1; k<=dim; k++) {
      schema[i][j] = k;
      if (controlla(schema, dim, passo)) {
	     if (trova(schema, dim, passo+1)) {
	        return 1;
         }
      }
      schema[i][j] = 0;
   }

   return 0;
}
コード例 #2
0
ファイル: sudoku.c プロジェクト: ChrisDeM/C_Language
/********************************************************************
  Programma principale
********************************************************************/
int main()
{
   int **schema, dim, i, j, risultato;
   char nomefile[20];

   printf("Inserire il nome del file: ");
   //scanf("%s", nomefile);

   schema = acquisisci("sudoku.txt", &dim); //nomefile, &dim);

   if (trova(schema, dim, 0)) {
      printf("Soluzione:\n");
      for (i=0; i<dim; i++) {
	     for (j=0; j<dim; j++) {
	        printf("%3d ", schema[i][j]);
	     }
	     printf("\n");
      }
   } else {
      printf("Nessuna soluzione trovata.\n");
   }

   for (i=0; i<dim; i++) {
      free(schema[i]);
   }
   free(schema);
   return risultato;
}
コード例 #3
0
ファイル: es3.c プロジェクト: affo/labsol
/*
 * riceve come parametri un codice a barre (barcode) e un vettore di tipo PFN e, usando la
 * funzione trova() per trovare il farmaco corrispondente,
 * restituisce 1 se il farmaco identificato dal codice è mutuabile, 0 altrimenti
 */
int esente (unsigned long int barcode, PFN pfn) {
    int i = trova(barcode, pfn);
    int ris;

    if (i >= 0) {
        ris = pfn[i].mutuabileSiNo;
    } else {
        ris = i;
    }

    return ris;
}