Ayuda esque veran esta es parte de mi programa
printf("Calificacion\t");
scanf("%d", &cal);
printf("Sexo\t");
scanf("%c", &s);
ay todo normal al momento de correrlo me pide
Edad _
Calificacion _ y me aparece el cursor para insertar datos
pero al momento de pikar enter
se imprime Sexo y directo se brinca ala siguiente instruccion =(
intente con "s=getchar()" y me da lo mismo
tambien con "s=getche()" y me dice orden getche() no encontrada alguien me dice que hice mal
#include<stdio.h>
main()
{
int limite,num, h1=0,h2=0,h3=0,m1=0,m2=0,m3=0,edad, cal;
char s;
/*Entrada de datos*/
printf("Total de empleados\t");
scanf("%d", &limite);
for (num=1; num <= limite; num++)
{
printf("\n*******************\n"
"Empleado No. %d \n"
"Edad: \t", num);
scanf("%d", &edad);
if (edad <20 || edad >25)
printf("RECHAZADO");
else
{
printf("Calificacion\t");
scanf("%d", &cal);
printf("Sexo\t");
scanf("%c", &s); /*AQUI ES DONDE NO ME PIDE ENTRAR DATOS SINO QUE SE BRINCA DIRECTO AL SIGUIENTE EMPLEADO A PEDIRME EDAD DE NUEVO*/
if (s== 'h' || s== 'H')
switch (cal)
{
case 10 : h1++; break;
case 9 : h2++; break;
case 8 : h3++; break;
default : printf("\n RECHAZADO");
}
else
switch (cal)
{
case 10 : m1++; break;
case 9 : m2++; break;
case 8 : m3++; break;
default : printf("\n RECHAZADO");
}
}
}
printf("\t\tHombres\t\tMujeres\n"
"Primera %5d %15d \n"
"Segunda %5d %15d \n"
"Ayudante %5d %15d \n", h1,m1,h2,m2,h3,m3);
}
aqui pongo mi programa para que vean en que esta mal
Update:Linksys
pero si me pida datos por ejemplo al insertar la ç
edad 22 es falso por tanto ejecuta el ELSE y me pide calificasion pongo por ejemplo 10 y al pikar enter SE SUPONE que debe aparecer SEXO y esperar a que pike algo pero nada sse imprime SEXO y no me pide nada por tanto al final todo me lo suma a HOMBRES =(
las llaves a mi parecer son las necesarias no me da problemas pero probare poner mas jeje xD
Copyright © 2024 Q2A.ES - All rights reserved.
Answers & Comments
Verified answer
Pon el getchar() despues de printf("Sexo\t");
Que quede asi:
printf("Calificacion\t");
scanf("%d", &cal);
printf("Sexo\t");
getchar();//Aqui lo pones
scanf("%c", &s);
Te permitira introducir el caracter antes de pasar a la siguiente instrucción, el error se debe a que toma el Enter (caracter 13 en el codigo ascii) como un valor. Tendrás que hacer esto siempre que trabajes con chars, ya que siempre ocurrira el mismo error. Tambien te vendría bien agregar un getch() al final de todo el codigo para que se muestren los datos, saludos =) .
esque lo estás metiendo en un if-else
es ilógico que te pida datos si no cumple con la condición que estás poniendo en la lÃnea de IF, es por ello que se salta, iwal y tu bronca es en las lÃneas donde van las llaves