void atribuirValores(VetorBi *matriz){
   int i,j, iInicial, iFinal, jInicial, jFinal, num, cont=0, addNum=1, terminou =0,acabou=0, aux;
   int verifLinha=0, verifColuna=0, verifRegiao=0; 
   
   iInicial = 0;
   iFinal = 2;
   jInicial = 0;
   jFinal = 2; 
   int vetor[9];   
    
   srand( time(NULL) );
   
   iniciarMatriz(matriz, vetor);      
   embaralharNumeros(vetor);      
       
   do 
   {
       for ( i = iInicial; i <= iFinal; i++ )
       {                   
              for ( j = jInicial; j <= jFinal; j++ )
              {
                  if(iFinal <=2 && jFinal <= 2){                                 
                      matriz->matriz[i][j] = vetor[cont];  
                      cont++;
                  }                 
                  else{
                       
                       terminou = 0;  
                       do{
                           if(j>2)verifLinha = verificaLinha(matriz, i, j, addNum);
                           if(j>0)verifColuna = verificaColuna(matriz, j, addNum);
                           else verifColuna = verificaColuna(matriz, i, addNum);
                           
                           verifRegiao = verificatresPorTres(matriz, iInicial, jInicial, i, jFinal, addNum);
                           
                           if(verifLinha == 0 && verifColuna == 0 && verifRegiao == 0){
                             matriz->matriz[i][j] = addNum;
                             terminou = 1;
                           }

                         /* if(i == iFinal && j == jFinal && terminou ==0 && addNum !=0){
                              matriz->matriz[i][j] = addNum;
                              do{                                 
                                   acabou = trocarValor(matriz, iInicial, jInicial, iFinal, jFinal);                                                                        
                              }while(acabou != 1);
                          }*/
                          addNum++;
                         
                       }while(terminou != 1);
                       addNum = 1; 
                  }
                  verifLinha=0;
                  verifColuna=0;
                  verifRegiao=0; 
                  
              }                
       }
       
       cont = 0;
       embaralharNumeros(vetor);
       jInicial = jFinal + 1;
       jFinal = jFinal + 3;
       
       if(jFinal > 8){
          iInicial = iFinal + 1;
          iFinal = iFinal + 3; 
          jInicial = 0;
          jFinal = 2;         
       }

   }while(iFinal <9);
}
Esempio n. 2
0
main()
{
      
   FILE * archi;  

   
   int tamanoRegistro = sizeof(Cliente);
   
   int cantidadRegistros; 
   
   int N = -1;
   
   int filas;
   
  
   system("cls");
   
   archi = fopen("clientes.dat", "w+b");
   
   if (archi == NULL)
   {
     exit(1);        
   }
   
   //TODO aqui va el menu
   
   cargarClientes(archi);
   
   cantidadRegistros = ftell(archi) / tamanoRegistro;
   
   Cliente vec[cantidadRegistros];
   
   
   generarVectorPolizas(archi, vec, N);
   
   listarVector(N, vec);  
   
   
   
   filas = frecuenciaMayor(archi); 

   printf("\n\nFrecuencia Maxima: %d", filas);
   
   printf("\n\n");
   
   float matriz[filas][5];
   
   iniciarMatriz(filas, matriz);
   
   deArchivoAMatriz(archi, matriz);

   
   mostrarMatriz(filas, matriz);

   
   fclose(archi);
   
   printf("\n\n");
   system("pause");   
      
}