Título: Problema en ejercicio Ayuda please Publicado por: mimel en 19 Marzo 2015, 19:53 pm Hola a la comunidad soy nuevo en el foro, y tengo una duda con un ejercicion en C, es el siguiente:
En un juego de preguntas a las que se responde “Si” o “No” gana quien responda correctamente las tres preguntas. Si se responde mal a cualquiera de ellas ya no se pregunta la siguiente y termina el juego. Las preguntas son: 1. Colon descubrió América? 2. La independencia de México fue en el año 1810? 3. The Doors fue un grupo de rock Americano? sencillo, pero al hacer la comparacion no me toma la decicion del if(pregunta1 == "si") se va al else aca muestro las capturas, nose en que estoy mal pero si pueden ayudarme les agradeceria: Código: #include <stdio.h> (http://fotos.subefotos.com/5a36401c9c73a95d95ecbf100ce981d8o.png) Título: Re: Problema en ejercicio Ayuda please Publicado por: ivancea96 en 19 Marzo 2015, 20:06 pm pregunta1, pregunta2 y pregunta3, al igual que "si", son direcciones de memoria. Son punteros a char, como bien los has definido. Un puntero no será igual a otro. Lo que hay que hacer es comparar letra a letra, y para ello tienes strcmp() de la librería string.
Título: Re: Problema en ejercicio Ayuda please Publicado por: rir3760 en 20 Marzo 2015, 02:53 am tengo una duda con un ejercicion en C Otra parte que se debe cambiar en el programa son las declaraciones de los arrays y las llamadas a scanf:* Al llamar a scanf utilizas el operador "dirección de" (el '&'): Código No es necesario utilizar ese operador cuando el argumento sea un array. * Los tres arrays tienen una capacidad para dos elementos pero, en un caso ideal, scanf almacenara tres caracteres (los dos de la cadena "si" o "no" mas el '\0' para indicar el final de la cadena). Hay que cambiar el numero de elementos de los benditos arrays como mínimo a tres. * Para evitar el desbordamiento en la llamada a scanf debes utilizar la cadena de formato "%2s", en ella el '2' indica que se debe leer una palabra de máximo dos caracteres. * Para evitar errores en el caso de palabras demasiado largas (mas de dos caracteres) debes eliminar el resto de la linea de texto. Ejemplos sobre ello hay a montones en la base de datos de los foros, solo es cuestión de utilizar el motor de búsqueda (busca los temas relacionados con el bufer de la entrada estándar). Un saludo Título: Re: Problema en ejercicio Ayuda please Publicado por: mimel en 24 Marzo 2015, 19:11 pm muchas gracias a la comunidad me ayudaron mucho, ya modifique y arregle el código para que funcionara, si alguien cree que debe ir de otra forma mas eficiente le agradecería, gracias a todos y feliz tarde ;-) :silbar:
Código: #include <stdio.h> Título: Re: Problema en ejercicio Ayuda please Publicado por: engel lex en 25 Marzo 2015, 06:47 am Citar The Doors fue un grupo de rock Americano creo que quisiste decir "Estadounidense" Título: Re: Problema en ejercicio Ayuda please Publicado por: MCKSys Argentina en 25 Marzo 2015, 08:23 am creo que quisiste decir "Estadounidense" O "Norteamericano" en su defecto... :P |