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)
| | |-+  bucle con char
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: bucle con char  (Leído 7,768 veces)
lukaszg_15

Desconectado Desconectado

Mensajes: 26



Ver Perfil
Re: bucle con char
« Respuesta #10 en: 3 Abril 2014, 21:33 pm »

no me viene a la mente como hacer bien el ejercicio, solo me falta que todos sean 0 salvo el de caracteres indicados que se le deberia sumar 1 cada vez que haya una palabra de su dimension, lo tengo hecho de forma que lea los caracteres y me los lee bien pero no se me ocurre la forma correcta.

Código
  1. #include <iostream>
  2.  
  3.  
  4. using namespace std;
  5.  
  6. int main(){
  7. int n;
  8. cout<<"Ingrese cantidad de nombre: ";
  9. cin>>n;
  10. cin.sync();
  11.  
  12. char nombres [n][25];
  13.  
  14. for(int k = 0;k<n;k++){
  15. cout<<"Ingrese nombre "<<k+1<<": ";
  16. gets(nombres[k]);
  17. }
  18. cout<<endl;
  19.  
  20.  
  21.  
  22. for(int k=0;k<n;k++)
  23.  
  24.  
  25. cout<<"Palabra longitud "<< k+1 <<": "<< strlen(nombres[k]) <<endl;
  26.  
  27. system("pause");
  28.  
  29. return 0;
  30.  
  31. }


En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: bucle con char
« Respuesta #11 en: 4 Abril 2014, 04:08 am »

no me viene a la mente como hacer bien el ejercicio, solo me falta que todos sean 0 salvo el de caracteres indicados que se le deberia sumar 1 cada vez que haya una palabra de su dimension, lo tengo hecho de forma que lea los caracteres y me los lee bien pero no se me ocurre la forma correcta.
No deberías hacerlo así. Problemas hay varios como declarar el array "nombres" con un numero de elementos calculado en tiempo de ejecución (si es valido depende del compilador) y el uso de la función gets (no se recomienda, las razones de ello en el tema |Lo que no hay que hacer en C/C++. Nivel basico|).

En el programa lo que debes hacer es leer palabra por palabra hasta que la introducida sea "fin", por cada una actualizas la frecuencia correspondiente. Finalmente imprimes la frecuencia de cada palabra.

Puedes empezar con:
Código
  1. #include <iostream>
  2. using std::cin;
  3. using std::cout;
  4. using std::endl;
  5.  
  6. #include <string>
  7. using std::string;
  8.  
  9. int main()
  10. {
  11.   unsigned long frec[26] = {0}; // Todos los elementos a cero
  12.  
  13.   string palabra;
  14.   while (cin >> palabra && palabra != "fin"){
  15.      // Actualizar la frecuencia de la palabra introducida,
  16.      // su longitud esta dada por
  17.      cout << "palabra.size() == " << palabra.size() << endl;
  18.   }
  19.  
  20.   // Imprimir la frecuencia de cada palabra
  21.  
  22.   return 0;
  23. }

Un saludo


En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
lukaszg_15

Desconectado Desconectado

Mensajes: 26



Ver Perfil
Re: bucle con char
« Respuesta #12 en: 4 Abril 2014, 17:22 pm »

eso mas o menos ya lo tenia, pero como coger esa longbitud y tranformarla en un 1?

es decir porque tengo que hacer un bucle si o si y entonces me sale todo 0 :

Código
  1. for (int i =0;i < 25;i++)
  2.  
  3. cout <<"Palabras longitud "<<i<<": " <<frec[25]<<endl;

entonces si yo escribo una palabra de 5 caracteres, para que Palabras longitud sea = 1 tendria que hacer otro bucle fuera de ese? porque si introduciese 2 palabras con 5 caracteres entonces tendria que ser Palabras longitud 5: 2.
Es que nunca he estudiado este tipo de estadisticas y cuando intento hacer algo con el i o con el frec me sale error, por ejemplo :

Código
  1. if (palabra.size() == 5) frec[4] == 1;

y me pone name lookup of 'i' changed for new ISO 'for' scoping
using obsolete binding at 'i'.
En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: bucle con char
« Respuesta #13 en: 6 Abril 2014, 00:35 am »

Los dos códigos que han puesto tienen un error, error provocado por escribir muy rápido ;D

En el primer código pones frec[25], no sería frec?

En el segundo código pones == cuando supongo que querrias hacer =.

El error de compilación es porque estás usando la variable i fuera de su contexto (es decir, fuera del for).
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
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda (Parar bucle con dato boolean) [bucle while]
Java
Dem0ny 5 18,334 Último mensaje 17 Diciembre 2008, 17:43 pm
por Dem0ny
duda doble puntero char a matriz de char
Programación C/C++
neo_from_cs_matrix 3 6,064 Último mensaje 5 Septiembre 2011, 03:53 am
por rir3760
Lectura de matríz de char como char** o DWORD*
Programación C/C++
david_BS 3 3,300 Último mensaje 20 Febrero 2012, 20:49 pm
por Eternal Idol
Como pasar una cadena char a hexadecimal por argumento a un constant char?
Programación C/C++
ahaugas 3 4,943 Último mensaje 13 Enero 2013, 14:09 pm
por ahaugas
Problema conversión Unsigned char a char
Programación C/C++
juliodiez 4 2,663 Último mensaje 19 Enero 2013, 04:34 am
por juliodiez
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines