Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: lopez fer en 11 Febrero 2021, 17:56 pm



Título: sopa de letras
Publicado por: lopez fer en 11 Febrero 2021, 17:56 pm
Código
  1.  
Me podrian ayudar, no se como buscar una palabra en diagonal al sureste este es mi codigo.

Código
  1. /*SOPA DE LETRAS
  2. aca
  3. ac
  4. al
  5. 3
  6. a c a
  7. d c c
  8. k l a
  9. */
  10.  
  11. #include <stdio.h>
  12. #define REN 10
  13. #define COL 10
  14. int main(int argc, char *argv[]) {
  15.  
  16. int renglon, columna;
  17. char caracter, aux;
  18. int tam;
  19. char matriz[REN][COL];
  20. char palabra1[11];
  21. char palabra2[11];
  22. char palabra3[11];
  23. int bandera,contador,longitud;
  24.  
  25. gets(palabra1);
  26. gets(palabra2);
  27. gets(palabra3);
  28.  
  29. scanf ("%d",&tam);
  30. scanf ("%c",&aux);
  31.  
  32. //CICLO PARA LA CAPTURA DE DATOS
  33. for(renglon=0; renglon<tam; renglon++){
  34. for (columna=0; columna<tam; columna++){
  35. scanf ("%c", &matriz[renglon][columna]);
  36. scanf ("%c", &aux);
  37. }
  38. }
  39.  
  40. for(renglon=0; renglon<tam; renglon++){
  41. for (columna=0; columna<tam; columna++){
  42. if (matriz[renglon][columna] == palabra1[0]){
  43. //comenzamos a buscar la palabra
  44. //DERECHA (IMPLEMENTAMOS UN CICLO QUE BUSQUE A LA DERECHA LA SUIGUENTE LETRA DE LA PALABRA)
  45. longitud= strlen(palabra1);
  46. bandera=1;
  47. for (contador=1;contador<longitud && columna+contador<tam; contador++);//controla no exceder a la longitud de la palabra
  48. if (matriz [renglon][columna+contador] == palabra1[contador]){
  49. bandera=0; // si la bandera cambia a cero es por que la palabra no se encuentra a la deracha
  50. break;
  51. }
  52.    }
  53. //verificar el codigo cuando termine
  54. //si todos los caracteres coincidieron
  55.    if (bandera==1  && contador==longitud ){
  56. //imprimir las coordenadas
  57. printf ("%c:%d %d derecha,",palabra1, renglon,columna);
  58. }
  59. //SURESTE
  60.  
  61.  
  62.  
  63. //ABAJO
  64.  
  65.  
  66. }
  67. }
  68.  
  69.  
  70.  
  71. return 0;
  72. }
  73.  
  74.  




Título: Re: sopa de letras
Publicado por: Serapis en 11 Febrero 2021, 21:31 pm
Esto no requiere ayuda alguna, no son un problema matemático ni de programación (per sé) es pura y simple lógica, cuentas de niño de 8 años...

Toma un papel, cuadricula un rectángulo, numera las casillas. Contínuas si usas un array unidimensional, por filas si es  bidimensional...

Marca una casilla hacia el centro como la actual...
Ahora, anota cada dirección y a su derecha las casillas que correponden a un hallazgo de por ejemplo 4 letras.
Finalmente observa la diferencia entre las casilla y analiza cual es la solución viendo que cambia.

Piensa, si no sabes pensar dedícate a otra cosa.