Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

208
Vistas
La salida no coincide con la entrada (lenguaje C)

Estoy haciendo un programa simple en C que le preguntará su edad y sexo. Si su género no es M o F, el programa le pedirá una entrada diferente. Si su edad es menor a cero, el programa requerirá otra entrada. Este es mi código:

 #include<stdio.h> int main(){ int a; char g; entry: printf("%s","AGE : "); scanf("%d", &a); getchar(); insert: printf("%s","GENDER :"); scanf("%s", &g); getchar(); while (a < 0){ goto entry; } switch(g){ case 'M':{ printf("I am a %d yr old male", a);break; } case 'F':{ printf("I am a %d yr old female", a);break; } default:{ goto insert; break; } } return 0; }

y este es un ejemplo del programa ejecutándose

EDAD : 21

GENERO M

soy un varón de 0 años

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Aunque detecté una rareza (vea el comentario grande) en el código, sale como esperaba, por lo que puede usar un enfoque como este:

 #include<stdio.h> #include<stdbool.h> int main(){ int age, a; char g; bool validInput; do { validInput = true; printf("%s","AGE : "); scanf("%d", &age); /* * If you use directly the 'a' var, somehow it will not print * input age. That's why I had to use a = age assignment. * This is weird, if someone knows why this happens let me * know please. */ a = age; if(a < 0) { validInput = false; } printf("%s","GENDER : "); scanf("%c", &g); getchar(); if(g != 'M' && g != 'F') { validInput &= false; } } while(!validInput); switch(g){ case 'M': printf("I am a %d yr old male\n", a); break; case 'F': printf("I am a %d yr old female\n", a); break; default: printf("Oops! Something went wrong...\n"); } return 0; }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda