Título: Ayuda: programa en lenguaje C Publicado por: Dayleap en 28 Abril 2016, 18:26 pm Hola buenas, os pido ayuda con este programa. Lo que quiero es ordenar unos caracteres de tal manera que primero se impriman '*' , luego '|' y final mente' _ '. Para eso tiene que comparar un array predefinido con valor= 1234 , con otro que introducimos por teclado. Si estos dos son iguales el programa para de ejecutarse; sino sigue. Si el valor es correcto ha de escribir ****. Si un numero esta escrito en el array pero esta en una posicion incorrecta | y si no esta en el array una _. Por ejemplo : introducimos 1245 y nos devuelve **|_ , otro ejemplo; introducimos 3524 y devuelve *||_
Muchas gracias!!Y tened paciencia por favor , soy nuevo en programacion. ADEMAS si no fuera mucho pedir podriais decirme a que se debe este fallo en concreto: si escribimos cualquier numero mayor de 4 lo da por bueno, cuando deberia de escribir una barra baja ya que en el array solo hay numeros menores de 4. Código
MOD EDIT: Titulo y etiqueta GeSHi corregidos. Título: Re: Ayuda: programa en lenguaje C Publicado por: MAFUS en 28 Abril 2016, 21:36 pm Bueno, vamos con unos pocos fallos, los más fáciles:
Controla las asignaciones porqué lo que haces es mirar igualdad: donde escribes j==4 e intentos==100 debe haber j=4 e intentos=100 Tienes un fallo en scanf: el nombre de un array ya es un puntero. donde escribes scanf("%s", &resp) debes haber scanf("%s", resp) Para contar el número de asteriscos, barras verticales y barras bajas en cada iteración estos deben empezar a contar a partir de 0. Así después de do{ debe haber asteriscos=0, barras=0, bajas=0; Para el problema de lógica: sea cual sea lo que ha ocurrido acabas haciendo que j=4 y por tanto se detiene ese bucle y por tanto siempre comparas cad==resp[0]. Hay que reescribir eso totalmente. Título: Re: Ayuda: programa en lenguaje C Publicado por: Dayleap en 28 Abril 2016, 23:10 pm Gracias MAFUS intentare volver a escribirlo desde el principio a ver si corrigo el fallo muchas gracias por contestar, publicare si soy capaz de corregir algo el codigo o no
Bueno, vamos con unos pocos fallos, los más fáciles: Bueno, el fallo estaba en donde inicializaba las variables asteriscos, baras y bajas al cambiarlo y pornerlo dentro del do{}while ya funciona correctamente sacando una pequeña cosa que no se como hacer para que pare de ejecutarse el bucle ya que solo para cuando el numero de intentos es igual a 100 Controla las asignaciones porqué lo que haces es mirar igualdad: donde escribes j==4 e intentos==100 debe haber j=4 e intentos=100 Tienes un fallo en scanf: el nombre de un array ya es un puntero. donde escribes scanf("%s", &resp) debes haber scanf("%s", resp) Para contar el número de asteriscos, barras verticales y barras bajas en cada iteración estos deben empezar a contar a partir de 0. Así después de do{ debe haber asteriscos=0, barras=0, bajas=0; Para el problema de lógica: sea cual sea lo que ha ocurrido acabas haciendo que j=4 y por tanto se detiene ese bucle y por tanto siempre comparas cad==resp[0]. Hay que reescribir eso totalmente. MOD EDIT: NO hacer doble post. Título: Re: Ayuda: programa en lenguaje C Publicado por: MAFUS en 28 Abril 2016, 23:55 pm Mira si el número de asteriscos en 4. Si es así para el bucle. Puedes ponerlo en la condición del while: intentos<100 && asteriscos!=4
Título: Re: Ayuda: programa en lenguaje C Publicado por: Dayleap en 29 Abril 2016, 09:53 am Si , tambien funciona eso que dices. El tema es que tenia un controlador porque tenia que cumplir muchas mas condiciones al final entonces cree la variable tipo int controlador y cuando sea igual a 1 acaba el bucle
|