• Sábado 14 de Diciembre de 2024, 22:03

Autor Tema:  Re: Quien Me Dice Porque No Imprime En Pantalla  (Leído 1185 veces)

carlos80

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Quien Me Dice Porque No Imprime En Pantalla
« en: Viernes 4 de Abril de 2008, 06:17 »
0
HOLA ESTOY DISEÑANDO UN SUDOKU EN C++, TRATO DE TOMAR LOS DATOS DEL USUARIO PARA COMPARARLOS CON UNA MATRIZ PRINCIPAL TANTO FILAS COMO COLUMNAS Y NO SE EN QUE ESTOY FALLANDO, SI ALGUIEN ME PUEDE DECIR QUE ES LA QUE ESTOY HACIENDO MAL LE AGRADECERIA MUCHISIMO
MI CORREO ES XXXXXXXXXXXXXXXXXXXXXX@yahoo.com

EI: ¿Para que dejas tu e-mail? ¿Para que te manden spam? Entra al foro para ver si te responden y no crees dos hilos para preguntar exactamente lo mismo!

Pongo el "codigo" entre etiquetas code.


Código: Text
  1.  
  2. #include <stdio.h>
  3. #include <conio.h>
  4.  
  5. int imprimir_juegosudoku(int tabla[9][9]);
  6.  
  7.  
  8.  
  9. int main()
  10. {
  11.    
  12.     int tabla_referencia[9][9];
  13.     int n;
  14.     int matriz[9][9];
  15.  
  16.    
  17.    
  18.    
  19.     int tabla[9][9]={ {0,0,9,0,2,0,0,0,4}, //falta crear la funcion que llene estos espacios con el archivo recibido//
  20.                       {6,2,0,0,0,0,0,7,0},
  21.                       {0,0,3,6,9,0,0,0,0},
  22.                       {0,0,4,5,3,0,1,0,0},
  23.                       {0,1,6,0,0,8,0,0,5},
  24.                       {0,0,0,0,0,0,6,9,8},
  25.                       {7,0,0,3,4,0,8,1,0},
  26.                       {0,3,0,0,0,1,0,0,9},
  27.                       {0,0,2,7,8,0,3,4,0}
  28.                     };
  29.    
  30.     imprimir_juegosudoku(tabla);
  31.  
  32.    
  33. int imprimir_juegosudoku(int tabla[9][9]);
  34. {    
  35.     int x,y;    
  36.     printf(" -----------------------------arriba\n");
  37.     for(x=0;x<9;x++)
  38.     {
  39.         printf("|");
  40.         for(y=0;y<9;y++)
  41.         {
  42.             if(tabla[x][y] != 0)
  43.                 printf(" %d ", tabla[x][y]);
  44.             else
  45.                 printf(" _ ");
  46.             if(y==2||y==5)
  47.                 printf("|");
  48.         }
  49.         printf("|\n|\t  |\t    |\t      |\n");
  50.         if(x==2||x==5)
  51.         {
  52.             printf("|---------|---------|---------|mitad");
  53.             printf("\n");
  54.         }
  55.     }
  56.     printf(" -----------------------------abajo\n");
  57.     printf("\n");
  58.     getch();
  59.     return 0;
  60. }
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.   int recoge_datos&#59;
  68. {
  69. int f,c,d,i,j;
  70.  
  71. printf("digite los los valores de la posicion fila columna y luego el numero a poner");
  72. scanf("%d",f,c,d);
  73.   {for(i=0;i<9;i++)                                    //comparar el valor recibido en las filas y las columnas//
  74.     {for(j=0;j<9;j++)
  75.        {if(tabla[f][c]==tabla[f][j]||tabla[f][c]==tabla[i][c])
  76.        
  77.           printf("no se puede ubicar este numero aqui");
  78.         else
  79.             {if (tabla_referencia[f][c]==1)     //esta tabla es la que cambia los numeros por 1//
  80.               printf("valor predeterminado,no se puede cambiar");
  81.             else (tabla[f][c]=d);                                //pasarle el valor a tablaen dicha posicion//
  82.                                      
  83. }}}}
  84.  
  85.  
  86.  
  87.  
  88.                int tabla_refereincia [9][9];
  89. {
  90. FILE *archivo;
  91.     char datos;
  92.     archivo=fopen("datos.txt","r");                          //lee los datos enviados por el profe//
  93.     if(!archivo)
  94.     {printf("error al abrir archivo");}
  95.                while (!feof(archivo))
  96.                    {datos=fgetc(archivo);}
  97.                 fclose (archivo);
  98.                
  99.                
  100.                                            //falta la condicion donde cambie los numeros por 1 y deje los ceros//
  101.                
  102.                
  103.                
  104.                 archivo=fopen("predeterminados.txt","w");         //CREA EL ARCHIVO
  105.     if (!archivo)
  106.     {printf ("    no se encontro el archivo");}
  107.     do
  108.        {    
  109.               datos=getch();
  110.               printf("%c", datos);
  111.               if(datos!=27)
  112.               for(i=0;i<5;i++)
  113.               {
  114.                   for(n=0;n<5;n++)
  115.                   {fprintf(archivo,"  Posicion [%d][%d]  =  %d\n",i,n,matriz[i][n]);}
  116.               }        
  117.   }
  118.        while(datos!=27);
  119.        fclose(archivo);
  120.  
  121.                
  122.                
  123.    
  124.  }}}
  125.  
  126.  
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Quien Me Dice Porque No Imprime En Pantalla
« Respuesta #1 en: Viernes 4 de Abril de 2008, 07:55 »
0
Ese programa no compila, revisa todo tu código pues tienes varios errores básicos, checa la definición de todas tus funciones. Además, recuerda que una función puede llamarse sólo después de haber sido declarada.
La imaginación es el límite.
Hardware & Software | Mexchip

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Quien Me Dice Porque No Imprime En Pantalla
« Respuesta #2 en: Viernes 11 de Abril de 2008, 09:05 »
0
Ya que volviste a crear un tema para esto te respondo en este y borro el otro ................................................

Esta linea no tiene pies ni cabeza:
(imprimir_juegosudoku(tabla["%c"]["%c"]="%c"),f,c,numero);}

El compilador te va a mostrar los errores ...

int imprimir_juegosudoku(int tabla[9][9]);

Lo mejor seria que empezaras de nuevo prestando atencion y despues de haber leido algun libro de programacion.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Elforious

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Re: Quien Me Dice Porque No Imprime En Pantalla
« Respuesta #3 en: Viernes 11 de Abril de 2008, 18:15 »
0
Tienes varios errores de sintaxis y uno que otro de lógica, hasta después de definir la función "imprimir_juegosudoku" está bien excepto en el punto y coma cuando la definís;
después de eso, tienes muchos errores, por ejemplo en:
Código: Text
  1.  
  2. printf("digite los los valores de la posicion fila columna y luego el numero a poner");
  3. scanf("%d",f,c,d);
  4.  
  5.  

Tienes que hacer un printf y scanf para cada uno, y el scanf funciona con & antes de la variable( scanf("%d",&f); ), por lo que mandas la variable por referencia...

Otro error de lógica está dentro del for en esta misma finción función "recoge_datos":
Código: Text
  1.  
  2. if(tabla[f][c]==tabla[f][j]||tabla[f][c]==tabla[i][c])
  3.         printf("no se puede ubicar este numero aqui\n");
  4.  
  5.  
Por que si la condición no se cumple, te imprime hasta que se acbe el for; tampoco l¡no le mandas los parámetros necesarios.

Organiza bien tu código y revisalo...

Espero haber ayudado.