Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Merlindvd en 24 Noviembre 2016, 22:23 pm



Título: [C++] repetir hasta ingresar 2 caracteres iguales
Publicado por: Merlindvd en 24 Noviembre 2016, 22:23 pm
Hola a todos!
Estoy realizando un programa en C++ que me compruebe los caracteres introducidos y finalice cuando se pongan dos caracteres iguales consecutivos. Lo estoy haciendo con una sentencia while con una condición de entrada, pero no ejecuta la sentencia. Alguien puede ayudarme.
Muchas gracias.

Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main ()
  5. {
  6. char a,b;
  7. cout<<"Introduce los caracteres: ";
  8. cin>>b;
  9. cin>>a;
  10.    while(a!=b);{
  11.    cout<<"Has introducido dos caracteres iguales"<<endl;}
  12. return 0;
  13. }
  14.  


Título: Re: Programa en C++
Publicado por: Konlex en 24 Noviembre 2016, 22:56 pm
lo que pasa es que estas poniendo mal un signo,en vez del !=(que es "diferente que"),tendrias que usar ==(que es para comparar si son iguales).Y otra cosa,usa mejor If.Te quedaria asi:
Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main ()
  5. {
  6. char a,b;
  7. cout<<"Introduce los caracteres: ";
  8. cin>>b;
  9. cin>>a;
  10.    if(a==b);{
  11.    cout<<"Has introducido dos caracteres iguales"<<endl;}
  12. return 0;
  13. }


Título: Re: Programa en C++
Publicado por: Merlindvd en 24 Noviembre 2016, 23:07 pm
Hola,

He utilizado while para poder introducir varios caracteres mientras se cumpla la condición de que son diferentes, y al introducir dos iguales finalice el programa.
Por ejemplo:
asdfghjkll, ahí finalice.

Gracias


Título: Re: Programa en C++
Publicado por: Konlex en 24 Noviembre 2016, 23:52 pm
ah,no te habia entendido bien xD
Es asi:
Código:
    #include <iostream>
    using namespace std;
    
    int main ()
    {
    char a,b;
    do{
     cout<<"Introduce la primera letra:";
     cin>>a;
     cout<<"Introduce la segunda letra:";
     cin>>b;
}
        while(a!=b);{
        cout<<"Has introducido dos caracteres iguales"<<endl;}
    return 0;
    }
    

saludos!


Título: Re: Programa en C++
Publicado por: engel lex en 25 Noviembre 2016, 00:11 am
hay algo que no han visto... el ";" despues del while, este codigo en realidad está haciendo esto


Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main ()
  5. {
  6. char a,b;
  7. cout<<"Introduce los caracteres: ";
  8. cin>>b;
  9. cin>>a;
  10.    while(a!=b){}
  11.  
  12. cout<<"Has introducido dos caracteres iguales"<<endl;
  13. return 0;
  14. }


para lo que tu quieres es mejor un do-while


Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main (){
  5.    char a,b;
  6.    do{
  7.        cout<<"Introduce los caracteres: ";
  8.        cin>>b;
  9.        cin>>a;
  10.    }while(a!=b);
  11.    cout<<"Has introducido dos caracteres iguales fin programa"<<endl;
  12. return 0;
  13. }


El titulo del tema debe ser descriptivo, modificado


Título: Re: [C++] repetir hasta ingresar 2 caracteres iguales
Publicado por: Merlindvd en 25 Noviembre 2016, 13:20 pm
Hola,

He realizado la prueba introduciendo los caracteres asdff y me da el siguiente resultado:
Introduce los caracteres: asdff
Introduce los caracteres: Introduce los caracteres: asdff
Introduce los caracteres: Introduce los caracteres: Has introducido dos caracteres iguales fin programa

Lo correcto sería:
Introduce los caracteres: asdff
Has introducido dos caracteres iguales fin programa


Título: Re: [C++] repetir hasta ingresar 2 caracteres iguales
Publicado por: engel lex en 25 Noviembre 2016, 17:43 pm
Ahhh! Pero entonces tienes que almacenar el contenido en un arreglo de char (o un string si sabes cómo usarlo) y recorrerlo con un for buscando coincidencias


Título: Re: [C++] repetir hasta ingresar 2 caracteres iguales
Publicado por: Merlindvd en 25 Noviembre 2016, 17:48 pm
Eso es, almacenar una arreglo de char. Veo que se está complicando un poco  >:(


Título: Re: [C++] repetir hasta ingresar 2 caracteres iguales
Publicado por: engel lex en 25 Noviembre 2016, 17:54 pm
Eso es, almacenar una arreglo de char. Veo que se está complicando un poco  >:(

Si, es más complicado xD pero es literalmente las bases de cualquier programa, los arreglos y matrices son sumamente básicos e importantes de saber usar


Título: Re: [C++] repetir hasta ingresar 2 caracteres iguales
Publicado por: Merlindvd en 25 Noviembre 2016, 18:00 pm
Pues necesito ayuda...no tengo claro como definir esos arreglos.
Me podrías ayudar con el código? ;)


Título: Re: [C++] repetir hasta ingresar 2 caracteres iguales
Publicado por: engel lex en 25 Noviembre 2016, 18:10 pm
te recomiendo leerte un tutorial de c++, los arreglos los tocarán en los primeros temas, intentar armar algo y pedir ayuda si te trancas


Título: Re: [C++] repetir hasta ingresar 2 caracteres iguales
Publicado por: Merlindvd en 25 Noviembre 2016, 20:27 pm
Me podrías ayudar con este código. Está hecho con un string, sería posible realizarlo con un arreglo de char?
Código
  1. #include <iostream>
  2. #include <string.h>
  3. using namespace std;
  4.  
  5. int main () {
  6.    string str;
  7.    cout << "Introduce caracteres: ";
  8.    cin >> str;
  9.    int i=0;
  10.    while (i < str.length()-1 && str.length()>=2){
  11.        if (str[i] == str[i+1]){
  12.            cout << "Has introducido dos caracteres iguales" << endl;
  13.            break;
  14.        }
  15.        i++;
  16.    }
  17.    return 0;
  18. }

CoAdm: los códigos deben ir en etiquetas GeSHi



Título: Re: [C++] repetir hasta ingresar 2 caracteres iguales
Publicado por: engel lex en 25 Noviembre 2016, 20:42 pm
El ciclo es igual, pero el arreglo de char debe ser declarado on un tamaño fijo, para saber el largo debes usr strlen y de resto se mantiene todo igual...




Título: Re: [C++] repetir hasta ingresar 2 caracteres iguales
Publicado por: Merlindvd en 26 Noviembre 2016, 16:18 pm
Muchas gracias por el aporte!  ;)