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


 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Ejercicios
| | | |-+  Cosa rarisima en codigo c++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Cosa rarisima en codigo c++  (Leído 361 veces)
anonimo115

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Cosa rarisima en codigo c++
« en: 19 Agosto 2017, 11:24 »

Buenos días.
Me tendria que salir ANA 1 15 19 pero sin embargo me sale ANA 15 19.
No se por qué se come la primera posición.
¿Podríais por favor echarle un vistazo?

Este es el enunciado



y este mi codigo

Código
  1. #include <iostream>
  2. using namespace std;
  3. const unsigned MAX_PAL_DIST=20;
  4. const unsigned MAX_REP=20;
  5. typedef int TArrayPosiciones[MAX_REP];
  6.  
  7. struct TPalabra{
  8. unsigned numpos;
  9. string palabra;
  10. TArrayPosiciones arrpos;
  11. };
  12.  
  13. typedef TPalabra TArrayPalabras[MAX_PAL_DIST];
  14.  
  15. struct TVector{
  16. unsigned numelem;
  17. TArrayPalabras arrpal;
  18. };
  19.  
  20. bool esPalindromo(const string& palabra){
  21.    string aux="", aux2="";
  22. for(unsigned cont=0; cont<palabra.size();cont++){
  23.    aux+=palabra[cont];
  24. }
  25. for(int cont=palabra.size()-1; cont>=0;cont--){
  26.    aux2+=palabra[cont];
  27. }
  28. return aux==aux2&&aux.size()>1;
  29. }
  30.  
  31. bool primeraVez(const string& palabra, const TVector& vect){
  32. bool laprimera=true;
  33. int cont=0;
  34. while(laprimera&&cont<vect.numelem){
  35.    if(vect.arrpal[cont].palabra==palabra){
  36.        laprimera=false;
  37.    }
  38.    ++cont;
  39. }
  40. return laprimera;
  41. }
  42.  
  43. int buscaPalabra(const string& palabra, const TVector& vect){
  44. int cont=0;
  45. while(vect.arrpal[cont].palabra!=palabra){
  46.    ++cont;
  47. }
  48. return cont;
  49. }
  50.  
  51. void muestraPalabra(int pos, const TVector& vect){
  52. cout<<vect.arrpal[pos].palabra<<" ";
  53. for(unsigned cont=0;cont<vect.arrpal[pos].numpos;cont++){
  54.    cout<<vect.arrpal[pos].arrpos[cont]<<" ";
  55. }
  56. }
  57.  
  58. void mostrarVector(const TVector& vect){
  59. for(unsigned cont=0;cont<vect.numelem;cont++){
  60.    muestraPalabra(cont, vect);
  61.    cout<<endl;
  62. }
  63. }
  64.  
  65. int main(){
  66. string palabra;
  67. int cont=0;
  68. TVector vect;
  69. vect.numelem=0;
  70. cout<<"Introduzca su texto (FIN para terminar)"<<endl;
  71. cin>>palabra;
  72. ++cont;
  73. while(palabra!="FIN"&&cont<MAX_PAL_DIST){
  74.    if(esPalindromo(palabra)){
  75.        if(primeraVez(palabra, vect)){
  76.            vect.arrpal[vect.numelem].numpos=0;
  77.            vect.arrpal[vect.numelem].palabra=palabra;
  78.            vect.arrpal[vect.numelem].arrpos[0]=cont;
  79.            ++vect.numelem;
  80.            ++vect.arrpal[vect.numelem].numpos;
  81.        }else{
  82.            int pos=buscaPalabra(palabra, vect);
  83.            vect.arrpal[pos].arrpos[vect.arrpal[pos].numpos]=cont;
  84.            ++vect.arrpal[pos].numpos;
  85.        }
  86.    }
  87.    ++cont;
  88.    cin>>palabra;
  89. }
  90. mostrarVector(vect);
  91. }

Muchas gracias de antemano


En línea

AlbertoBSD
💻🌎🌍🌏🌐 NWO📱
Colaborador
***
Desconectado Desconectado

Mensajes: 3.095


Libertad!!!!!


Ver Perfil WWW
Re: Cosa rarisima en codigo c++
« Respuesta #1 en: 5 Septiembre 2017, 00:42 »

La imagen es muy pequeña y el codigo no se entiende del todo. Si tuviera el enunciado mas grande, no me daria flojera depurar el codigo paso a paso.

Saludos!


En línea

Crackeame si puedes Wallet.dat
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines