Junio 23, 2018, 09:04:49 pm

Autor Tema: Contar palabra mas larga  (Leído 3698 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado andres88_

  • Me das tu IP?
  • *
  • Mensajes: 120
    • Ver Perfil
Contar palabra mas larga
« en: Marzo 03, 2010, 09:25:46 pm »
hola gente, tengo un prgrama que tiene que mostrar la palabra mas larga ( que lo hace ) y que contar cuantas veces se repite ( que lo hace  a medias ), no puedo usar funciones de libreria por eso lo tengo que hacer a mano, cuenta las palabras repetidas pero si aparecen mas de 2 veces, no als cuenta, haber si encuentran en error. Gracias!!


Código: You are not allowed to view links. Register or Login
#include <conio.h>
#include <stdio.h>
#include <string.h>

void primerapalabra(char *);


int main()
{
    char cadena[80],palabra[80];
    int vecespalabra;
    
    printf("Ingrese la cadena: ");
    gets(cadena);
    
primerapalabra(cadena);
    

    getch();
}

void primerapalabra(char *s)
{
int i=0,j=0,longitudpal=0,cont=1;
char aux[20];
    
     while(*s!=' ')
     {
     aux[i]=*s;
     i++;
     s++;
     }
aux[i]='\0';
puts(aux);
longitudpal=i-1;

while(*s)
{
  if(*s!=' ')
     while(*s==aux[j])
     {
      j++;
      
      }
  
  if(j==longitudpal)
  {
  cont++;
  }

s++;
}
printf("la palabra se repite %d veces",cont);
}

Juego de prueba:

You are not allowed to view links. Register or Login
« Última modificación: Marzo 05, 2010, 02:55:47 pm por Avoidance25 »

Desconectado WaesWaes

  • Actualmente es
  • Colaborador
  • ****
  • Mensajes: 4402
  • You are not prepared!
    • Ver Perfil
Re: Contar palabra mas larga
« Respuesta #1 en: Marzo 04, 2010, 11:23:33 am »
podrias poner una frase de entrada y su respectiva salida?

saludos

Desconectado andres88_

  • Me das tu IP?
  • *
  • Mensajes: 120
    • Ver Perfil
Re: Contar palabra mas larga
« Respuesta #2 en: Marzo 04, 2010, 12:21:07 pm »
Ahi agregue un juego de pruebas!!

Desconectado WaesWaes

  • Actualmente es
  • Colaborador
  • ****
  • Mensajes: 4402
  • You are not prepared!
    • Ver Perfil
Re: Contar palabra mas larga
« Respuesta #3 en: Marzo 04, 2010, 12:33:29 pm »
Bien, el error ahi es que no deberia contar la cadena hola porque se repite mas de una ves verdad??

saludos

Desconectado andres88_

  • Me das tu IP?
  • *
  • Mensajes: 120
    • Ver Perfil
Re: Contar palabra mas larga
« Respuesta #4 en: Marzo 04, 2010, 03:21:17 pm »
el programa tiene que mostrar como resultado:

1) La 1º palabra de la cadena ( que lo hace)
2) las veces que se repite esa palabra. ( que ahi esta el error)

Desconectado coredump

  • Yo vivo en CPH
  • ***
  • Mensajes: 408
  • Sexo: Masculino
    • Ver Perfil
Re: Contar palabra mas larga
« Respuesta #5 en: Marzo 04, 2010, 04:55:25 pm »
Hola! Estaba por probarlo pero tiene conio.h y no tengo ganas de andar cambiando código (perdón por la vagancia...).
Te recomiendo, aunque más no sea para que vayas teniendo buenas prácticas de programación, que hagas lo siguiente:

Crea tu propia función split (separa una cadena en varias cadenas, partiéndola por un token) y tu propia función sonCadenasIguales.

Código: (c) You are not allowed to view links. Register or Login
char** split(char* cadena, const char token);
int sonCadenasIguales(char *cadena1, char* cadena2);

Donde split lo que hace es romper la cadena original, sobreescribiendo los tokens con  '\0' y devolviendo las posiciones de inicio de cada palabra en un char** que debe ser hecho con un malloc. Además, el último puntero debe ser NULL. Por ejemplo:

dada la cadena:

Código: (c) You are not allowed to view links. Register or Login
"hola gente de portal hacker"
Queda:
Código: (c) You are not allowed to view links. Register or Login
"hola\0gente\0de\0portal\0hacker"Y se retorna una lista de punteros (un char**) con los valores:
[pos+0, pos+5, pos+11, pos+14, pos+21, NULL]



Entonces tu función principal primeraPalabra quedaría:

Código: (c) You are not allowed to view links. Register or Login
int primeraPalabra(char *cadena){
    char **palabras;
    int contarRepeticion=0;

    palabras=split(cadena, ' ');
   
    printf("La primera palabra es: %s \n", palabras[0]);

    for(i=1;palabras[i];i++){
        if( sonCadenasIguales(palabras[i], palabras[i-1]) )
            contarRepeticion++;
    }

    printf("y se repite %d veces.\n", contarRepeticion);


    /*aca liberar memoria de palabras[]*/

return 0;
}


Espero que te sirva, si no sabes cómo hacer el split, te paso un código, pero estaría bueno que lo hagas vos.


Saludos!!
coredump
Generation no: 298
Generation no: 299
Generation no: 300
The end of all the generations.
The best solution found is Program number: 42
+--DIV
|  +--[0]
|  +--[0]
The fitness value is: 68
Press any key to terminate....


xx
[python] Error al contar la cantidad de palabra que tiene una frase.

Iniciado por YoSoyRDV

8 Respuestas
3501 Vistas
Último mensaje Marzo 08, 2018, 03:59:44 pm
por seth
xx
antenas de larga distancia.

Iniciado por antoxic

2 Respuestas
1593 Vistas
Último mensaje Junio 09, 2009, 04:23:20 pm
por uchihalan
xx
Historia Veridika (no sta larga)

Iniciado por Chino Antrax

15 Respuestas
4583 Vistas
Último mensaje Noviembre 08, 2009, 04:06:42 pm
por xVIDAx
question
larga vida al server

Iniciado por xra

3 Respuestas
890 Vistas
Último mensaje Junio 24, 2012, 09:08:43 am
por dark_master_999
xx
Como meter una linea LARGA en una variable?

Iniciado por hanlly

2 Respuestas
2671 Vistas
Último mensaje Enero 28, 2012, 02:49:03 am
por ElektroStudios
question
[Inyeccion de prueba - larga info - que hacer?] Help

Iniciado por M4inFox

6 Respuestas
1530 Vistas
Último mensaje Marzo 09, 2011, 09:37:00 am
por M4inFox
question
¿Cual es la línea de código mas larga que has escrito?

Iniciado por klaine

12 Respuestas
1901 Vistas
Último mensaje Marzo 20, 2012, 02:15:14 pm
por klaine
exclamation
Arrecia el ataque y Kadafi anuncia una “guerra larga”

Iniciado por WaesWaes

4 Respuestas
1026 Vistas
Último mensaje Marzo 20, 2011, 10:43:12 pm
por JaAViEr
xx
Palabra

Iniciado por Hugiogh

3 Respuestas
2036 Vistas
Último mensaje Marzo 13, 2007, 09:39:43 pm
por logisys
xx
contar clicks..

Iniciado por -SharK_90-

9 Respuestas
2414 Vistas
Último mensaje Agosto 23, 2007, 03:16:11 pm
por яэℓøαÐ