Ayuda con codigo

Iniciado por Zhor, 7 Mayo 2011, 02:30 AM

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

Zhor

Alguien me puede ayudar con este codigo
En lenguaje C++
(estoy usando DevC++
esto es lo que tengo
(con la opcion 2 y 3 se me cuelga, no sé el por que?)

#include<iostream>
#include<string.h>
using namespace std;   

void palabras(char cadena[], int lar)
{
    int pal,i;
    pal = 1;
    for(i=0;i<=lar;i++)
    {
       if(cadena == ' ')
       {
         pal++;
       }
    }
    cout<<"Cantidad de palabras : "<<pal<<endl;
    system("pause");
}
void invertirfrase(char cadena[], int lar )
{
    int i;   
    for (i=lar; i >= 0;i--)
    {
       cout<< cadena;
    }
    cout<<endl;
}

int main ()
{
      char cadena[30];
      int lar, i, pal, op;
      cout <<"ingrese frase:"<<endl;
      cin.getline(cadena,30); //lee cadena de forma correcta
      cout<<"[ "<<cadena<<" ]"<< " se ha guardado en memoria..."<<endl;
      system("pause");


do{ system("cls");
    cout<<"                    MENU"<<endl;
    cout<<" 1 Cual es la Frase?  "<<endl;
    cout<<" 2 Determinar cuantas palabras tiene la frase : "<<endl;
    cout<<" 3 Invertir la frase : "<<endl;
    cout<<" 4 Invertir el orden de las palabras de la frase : "<<endl;
    cout<<" 5 Leer si se encuentra una palaba en la frase : "<<endl;
    cout<<" 6 Es PALINDROMICA? :"<<endl;
    cout<<" 7 Determinar frecuencia de las letras : "<<endl;
    cout<<" 9 SALIR "<<endl;
    cout<<endl<<endl;
    cout<<"ingrese opcion:";
    cin>>op;

    if(op==1)
      {
    cout<<"es ""'"<<cadena<<"'"" : ";
      }
    if(op==2)//contar espacios y sumar 1 en el string
            {           
            palabras(cadena, lar);
            }
    if(op==3)
             {
             invertirfrase(cadena,lar);
             }
    if(op==4)
             {
             cout<<"estamos en opcion 4"<<endl;
             }
    if(op==5)
             {
             cout<<"estamos en opcion 5"<<endl;
             }
    if(op==6)
             {
             cout<<"estamos en opcion 6"<<endl;
             }
    if(op==7)
             {
             cout<<"estamos en opcion 7"<<endl;
             }
system("pause");
}while(op !=9);
}


con los minimos conocimientos que tengo no soy capaz de realizarlo,
y me veo obligado a pedir ayuda.
intente tambien poner en la opcion 1 para ingresar la frase/palabra que es la idea, y tampoco me resulto, llevo casi todo el dia tratando de hacer esto.


Edu

Ese DO no tiene un final? le falta eso y el final del Main

Zhor

#2
no copie todo por error, ya lo he modificado..(la idea es que haga todo lo que puse en las opciones de menu)
Cita de: XXX-ZERO-XXX en  7 Mayo 2011, 02:43 AM
Ese DO no tiene un final? le falta eso y el final del Main
ojo que falta mucho mas que eso..

Edu

En vez de If usa Switch y te organizaras mejor, y yo el bucle do-while lo haria mas antes y distinto, lo pondria antes de las verificiaciones del if que vs cambiaras por Switch y en la condicion del while en ves de op!=9 pondria una variable q cambie si pasa algun error o algo, pero eso veras

<<<-Basura->>>

para quitar el do while, podrias sacar todo a una funcion, y si quieres que se vuelva a repetir nada mas invocas a la función otra vez desde la misma funcción
<<<--Basura-->>>