elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Error en programa en C (Resuelto)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Error en programa en C (Resuelto)  (Leído 5,583 veces)
SoyelRobert

Desconectado Desconectado

Mensajes: 46



Ver Perfil
Re: Error en programa en C
« Respuesta #10 en: 3 Enero 2014, 23:11 pm »

el problema que yo le veo al codigo de leosansan es que el problema pide explicitamente que las palabras a buscar anagramas sean introducidas por fichero o teclado... podría solucionarse así?

Código
  1. #include <stdio.h>
  2.  
  3.    struct Palabras{
  4.    char letras[10]; //letras de cada palabra, maximo 10 letras
  5.    };
  6.    struct Palabras Tpalabras[6]; //vector con informacion de todas las palabras, maximo 6.
  7.  
  8.    void main(void){
  9.  
  10.    int ch, i, j;
  11.  
  12.    puts("introduzca sus palabras a buscar separadas por espacios y un punto en la ultima para indicar que se han acabado: ");
  13.  
  14.    for(i=0;i<6;i++){
  15.        for(j=0;j<10;j++){
  16.            if(ch=getchar() != '.') break;
  17.            else{
  18.                if(ch=getchar()!= ' ')Tpalabras[i].letras[j]=getchar();
  19.                else continue;
  20.            }
  21.        }
  22.    }
  23.  
  24. .
  25. .
  26. .
  27. .
  28. .
  29.  
  30.  
  31.  

Es solo una idea, usar estructuras para guardar todas las palabras y usar un par de fors para ir guardando cada letra en una casilla de un array para despues comprobar si las palabras del texto pueden ser una permutación de dichas letras.  :huh: :huh: :huh:

es lo unico que se me ha ocurrido


« Última modificación: 3 Enero 2014, 23:13 pm por SoyelRobert » En línea

getting louder!
amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Error en programa en C
« Respuesta #11 en: 3 Enero 2014, 23:27 pm »

No hay ninguna diferencia entre leer de teclado y un fichero. Podrías incluso cambiar el stdin (fichero del teclado) hacia un txt para que se lea directamente con las mismas funciones:

Código
  1. stdin = freopen("archivo.txt", "r", stdin);

Por cierto la indentación no es la adecuada. No es tabular todo el código, sino tabular los bloques. La idea esque puedas reconocer cual es cada bloque (entiendase por bloque un condicional, una función, un bucle...):

Código
  1. #include <stdio.h>
  2.  
  3. struct Palabras
  4. {
  5.   char letras[10]; //letras de cada palabra, maximo 10 letras
  6. };
  7. struct Palabras Tpalabras[6]; //vector con informacion de todas las palabras, maximo 6.
  8.  
  9. void main(void)
  10. {
  11.   int ch, i, j;
  12.  
  13.   puts("introduzca sus palabras a buscar separadas por espacios y un punto en la ultima para indicar que se han acabado: ");
  14.  
  15.   for(i=0;i<6;i++)
  16.   {
  17.       for(j=0;j<10;j++)
  18.       {
  19.           if(ch=getchar() != '.') break;
  20.           else
  21.           {
  22.               if(ch=getchar()!= ' ')Tpalabras[i].letras[j]=getchar();
  23.               else continue;
  24.           }
  25.       }
  26.   }
  27. }

Cada llave abierta son 4 espacios a la derecha más que tabular, y cada llave cerrada son 4 espacios menos para tabular.


« Última modificación: 3 Enero 2014, 23:34 pm por amchacon » En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
joanj94

Desconectado Desconectado

Mensajes: 64



Ver Perfil
Re: Error en programa en C
« Respuesta #12 en: 3 Enero 2014, 23:47 pm »

No he dado estructuras, como mucho si a eso os referis son tablas multidimensionales como la de los anagramas que es anagramas[10][50] (10 palabras de 50 letras)

Y un fallo que tengo, es que las palabras las lee bien excepto si terminan con .
Ej: linux(espacio). me leera bien la palabra, pero si pongo linux. no la lee bien, de hecho hace como si no hubiera leido nada y la deja a 0
« Última modificación: 4 Enero 2014, 00:14 am por joanj94 » En línea


joanj94

Desconectado Desconectado

Mensajes: 64



Ver Perfil
Re: Error en programa en C
« Respuesta #13 en: 5 Enero 2014, 05:26 am »



Y bueno tu problema es:
Código
  1. while(d_c!='.')


Me congratula decir que conseguir que el programa funcionase bien lo que era leer palabras, cambiando ese condicional por:
Código:
while(strlen(txt)!=0)
Y modificando la funcion de lectura para que devolviera bien. Ahora el problema ya es otro que es en la funcion de comparar, porque segun parece ordena bien las palabras, pero nose porque algunas ocasiones no funciona la comparacion, voy a seguir provando y si veo que no me sale vuelvo a decir algo, pero esto ya en un post nuevo porque este quedo muy desfasao para el problema actual ya.

Muchas gracias por vuestro tiempo :D
En línea


Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Error en programa
.NET (C#, VB.NET, ASP)
zhynar_X 4 3,567 Último mensaje 8 Mayo 2007, 15:35 pm
por zhynar_X
programa en c++ el programa me da un error dice que la llave correspondiente a {
Programación C/C++
eduardo17445 2 4,508 Último mensaje 5 Junio 2012, 19:51 pm
por eduardo17445
Error en programa
Programación C/C++
apoeti 6 2,535 Último mensaje 7 Septiembre 2012, 18:29 pm
por apoeti
Programa error « 1 2 »
Programación C/C++
elkiy 11 6,957 Último mensaje 19 Febrero 2013, 18:59 pm
por elkiy
Error en el programa
Programación C/C++
Eva93 6 2,673 Último mensaje 30 Agosto 2013, 19:15 pm
por Eva93
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines