• Martes 12 de Noviembre de 2024, 21:22

Autor Tema:  Comparacion  (Leído 2052 veces)

Penguin-man

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Comparacion
« en: Miércoles 22 de Noviembre de 2006, 07:08 »
0
Hola, necesito hacer un programa que por ejemplo se le introdusca 1 cadena de caracteres y la compare con otras que ya estan iniciadas, si es igual a la cadena 1 debuelve un 1, si no es igual que la compare con la numero 2 y asi sucesivamente, si no encuantra una cadena igual, devuelve un 0.

lo he tratado de hacer con cadenas de ifs pero no me sale y por otros metodo pero no funciona, tienen alguna idea de como hacerlo ?

Código: Text
  1.  
  2. #include <stdio.h>
  3. #include <string.h>
  4.  
  5. char c1[]={'w','^'.'x','^','\0'}, c2[]={'w','^','x','\0'},c3[]={'w','x','^','\0'}, c4[]={'w','x','\0'}, cad[5];
  6. int nc;
  7.  
  8. //funcion com
  9.  
  10. int com()
  11. {
  12. int j;
  13. j=strcmp(cad, c1);
  14.  
  15. if (j==0)
  16. {nc=1;
  17. j=1;}
  18.  
  19. else j=strcmp(cad,c2);
  20.  
  21. if(j==0)
  22. {nc=2;
  23. j=1;}
  24. else j=strcmp(cad,c3);
  25.  
  26. if(j==0)
  27. {nc=3;
  28. j=1;}
  29. else j=strcmp(cad,c4);
  30.  
  31. if(j==0)
  32. {nc=4
  33. j=1;}
  34. else printf("error\n");
  35.  
  36. }
  37.  
  38. main()
  39. {
  40. int i=1,a=0;
  41. char o;
  42.  
  43. do{
  44. printf("introduce el termino # %i \n",i);
  45. scanf("%s",cad);
  46. i++;
  47. com();
  48. while(nc==0)
  49. {
  50. printf("no has introducido un termino valido \n vuelbe a ingresar el termino \n");
  51. scanf("%s",cad);
  52. com();
  53. }
  54.  
  55. if(nc!=0)
  56. {
  57. printf("Numero de comparacion devuelto = %i \n  desea ingresar otro termino? \n S o N \n",nc);
  58. scanf("%c",& o);
  59. }
  60.  
  61. if (o=='N')
  62. { printf("Fin de la ejecucion del programa \n ");
  63. break;
  64. }
  65.  
  66. }while(o =='S');
  67.  
  68. }
  69.  
  70.  

El pingüino es Poderoso

LeGatoRojo

  • Miembro HIPER activo
  • ****
  • Mensajes: 552
  • Nacionalidad: mx
    • Ver Perfil
    • LeGatoRojo
Re: Comparacion
« Respuesta #1 en: Miércoles 22 de Noviembre de 2006, 07:36 »
0
pues la solución puede intuirse facilmente, piensa un poco mas, no soy el único que te dira que aquí no se hacen táreas
Un día desperte y en lugar de dientes tenía colmillos, en lugar de manos, tenía garras; pero lo más impactante fue el color escarlata de mi pelaje.

Bicholey

  • Moderador
  • ******
  • Mensajes: 1234
    • Ver Perfil
Re: Comparacion
« Respuesta #2 en: Miércoles 22 de Noviembre de 2006, 18:20 »
0
:D  :D  :D  :D


Pues como te dijeron vas por el camino correcto quiza esto te ayude un poco:


 #include <string.h>
 #include <stdio.h>

int main(void)
 {
    char *buf1 = "aaa", *buf2 = "bbb", *buf3 = "ccc";
    int ptr;

    ptr = strcmp(buf2, buf1);
    if (ptr > 0)
       printf("buffer 2 is greater than buffer 1\n");
    else
       printf("buffer 2 is less than buffer 1\n");

    ptr = strcmp(buf2, buf3);
    if (ptr > 0)
       printf("buffer 2 is greater than buffer 3\n");
    else
       printf("buffer 2 is less than buffer 3\n");

    return 0;
 }
[size=109]LOS GATOS SIEMPRE CAEMOS DE PIE !!![/size]


Penguin-man

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Re: Comparacion
« Respuesta #3 en: Miércoles 22 de Noviembre de 2006, 19:02 »
0
Gracias por su ayuda, y pues no esperaba que me hicieran la tarea si no que  me dieran una idea para seguir.

El pingüino es Poderoso

Bicholey

  • Moderador
  • ******
  • Mensajes: 1234
    • Ver Perfil
Re: Comparacion
« Respuesta #4 en: Miércoles 22 de Noviembre de 2006, 19:23 »
0
:D  :D  :D

je je je lo que pasa es que aqui muchos piden que se les haga su tarea y por lo regular solo ayudamos con problemas especificos...
[size=109]LOS GATOS SIEMPRE CAEMOS DE PIE !!![/size]


Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Comparacion
« Respuesta #5 en: Miércoles 22 de Noviembre de 2006, 21:40 »
0
¿Cuál es el error que te da tu programa?

¿Al compilar? El código que colocaste tiene unos errores de sintaxis (un ; en uno de los if, una coma en la declaración de las cadenas). Tras corregir esos errores el número de comparaciones devuelto es correcto.

Saludos,
JJ (Geo).
La imaginación es el límite.
Hardware & Software | Mexchip

Penguin-man

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Re: Comparacion
« Respuesta #6 en: Jueves 23 de Noviembre de 2006, 05:06 »
0
Si parece que ese era el error, bueno pues ya funciona solo era cuestion de pensar mas, solo que ya me estaba desesperando, el error era de funcionamiento, si compilaba, pero al correrlo no devolvia el valor correcto,  gracias por su ayuda.

El pingüino es Poderoso

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Comparacion
« Respuesta #7 en: Jueves 23 de Noviembre de 2006, 14:43 »
0
Cita de: "Penguin-man"
Si parece que ese era el error, bueno pues ya funciona solo era cuestion de pensar mas, solo que ya me estaba desesperando, el error era de funcionamiento, si compilaba, pero al correrlo no devolvia el valor correcto,  gracias por su ayuda.
Qué bien que ya lo arreglaste, pero recuerda: paciencia ante todo  :hola:.

Saludos,
JJ (Geo).
La imaginación es el límite.
Hardware & Software | Mexchip