Foros del Web » Programación para mayores de 30 ;) » C/C++ »

por que mi programa no compila.

Estas en el tema de por que mi programa no compila. en el foro de C/C++ en Foros del Web. Necesito usar una clave de 4 caracteres (letras y numeros) y que al tercer intento fallido me diga no volver a intentar solo uso devc++ ...
  #1 (permalink)  
Antiguo 09/04/2016, 15:09
 
Fecha de Ingreso: abril-2016
Mensajes: 1
Antigüedad: 8 años
Puntos: 0
por que mi programa no compila.

Necesito usar una clave de 4 caracteres (letras y numeros)
y que al tercer intento fallido me diga no volver a intentar
solo uso devc++
#include<stdio.h>


char clave[10];
int intentos=0;
int faltan=3;

int main()
{
do{

printf("Introduce tu clave:");
scanf("%s",& clave);
intentos++;
faltan=faltan-intentos;
printf("\n Te faltan %d oportunidades", faltan);


}
while (intentos<3 && clave!=423a);

if(clave==423a)
printf("Bienvenido");
else
printf("No volver a intetar");

}
  #2 (permalink)  
Antiguo 09/04/2016, 16:08
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: por que mi programa no compila.

Casi tienes el programa terminado. Dos detalles a corregir y cuatro sugerencias:

1. Los strings van entre comillas sobles ("). Si se tratase de un carácter suelto entonces tendrías que usar comillas simples (').
2. Los strings no se pueden comparar directamente con el operador ==, para eso existen funciones tipo strcmp. Esto es así porque cada carácter se almacena en una posición adyacente de la memoria y C no tiene mecanismos naturales para recorrer dicha memoria.
3. Saber si has de mostrar el mensaje de "No volver a intentar" es tan sencillo como verificar si el número de intentos es igual a 3. No hace falta comparar la cadena dos veces.
4. No uses variables globales. Intenta evitar su uso en la medida de lo posible ya que son una fuente natural de problemas.
5. Para programar C estándar te da absolutamente igual el IDE que utilices ya que todos deberían soportar las funcionalidades que te van a exigir en las prácticas.
6. Ponte las pilas con la teoría.

Un saludo.
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.
  #3 (permalink)  
Antiguo 10/04/2016, 03:26
 
Fecha de Ingreso: febrero-2015
Mensajes: 404
Antigüedad: 9 años, 2 meses
Puntos: 3
Respuesta: por que mi programa no compila.

Esta parte se podría dejar asi:
Código C:
Ver original
  1. int correcto=0, faltan=3;
  2. char clave[10];
  3. do{
  4.    printf("Introduce tu clave:");
  5.    scanf("%s", &clave);
  6.    if( strcmp(clave,"423a")==0 )
  7.       correcto=1;
  8.    else{
  9.       faltan--;
  10.       printf("\n Te faltan %d oportunidades", faltan);
  11.    }
  12. }while (correcto == 0 && faltan > 0);
Con eso al salir solo tienes que comprobar si correcto es 1 para saber si puso bien la clave y no necesitas comparar la cadena dos veces.

Etiquetas: char, int, numero, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:26.