Bucle infinito, no escanea el dato.
Publicado por Osvaldo (1 intervención) el 09/10/2018 04:36:58
Este es mi programa.
Tiene un poco de paja por cuestiones de formalidad, pero el problema inicia cuando pide el sexo de la persona,
pues aunque se escriba 'm' o 'h' el programa manda el mensaje que se deberia mandar solo en caso de que el
usuario no escriba un valor correcto. Despues de eso no se si funcione xd pues no pasa de esa parte.

El bucle es infinito, ademas de que me acabo de dar cuenta que imprime el mensaje de error el mismo numero de veces que la cantidad de caracteres
Tiene un poco de paja por cuestiones de formalidad, pero el problema inicia cuando pide el sexo de la persona,
pues aunque se escriba 'm' o 'h' el programa manda el mensaje que se deberia mandar solo en caso de que el
usuario no escriba un valor correcto. Despues de eso no se si funcione xd pues no pasa de esa parte.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include<stdlib.h>
#include<stdio.h>
int portada()
{
printf("Universidad Nacional Autonoma de Mexico\n");
printf("Facultad de Estudios Superiores Acatlan\n");
printf("Matematicas Aplicadas y Computacion\n");
printf("Grupo:1101\n");
printf("Estrada Sosa Osvaldo Israel\n");
printf("Maratón de la Ciudad de México\n\n");
}
int main(){
int i, edad;
char sexo;
do{
system("cls");
portada();
printf("Este programa te da el horario en que deberas presentarte al marat%cn según tu edad y sexo\n",162);
printf("Escriba si es mujer (m) u hombre (h): \n");
scanf("%c",&sexo);
while(sexo!='m'||sexo!='h')
{
printf("Solo se admiten m o h: \n");
scanf("%c",&sexo);
}
printf("Por favor, introduce tu edad en a%cos: \n",164);
scanf("%i",&edad);
while(edad<18||edad>39)
{
printf("Solo se admiten personas de 18 a 39 años: \n");
scanf("%i",&edad);
}
if(sexo=='m'){
if(edad>=18&&edad<=19){
printf("Su categoria es Junior y su horario es 6:25... \n");
}else if(edad>=20&&edad<=34){
printf("Su categoria es Libre y su horario es 6:15... \n");
}else {
printf("Su categoria es Master y su horario es 6:35...\n");
}
}else if(sexo=='h'){
if(edad>=18&&edad<=19){
printf("Su categoria es Junior y su horario es 6:20... \n");
}else if(edad>=20&&edad<=34){
printf("Su categoria es Libre y su horario es 6:00...\n ");
}else {
printf("Su categoria es Master y su horario es 6:30...\n");
}
}else{}
printf("Para repetir el programa escriba 1 de lo contrario 0+enter");
scanf("%i",&i);
}while(i==1);
return 0;
}

El bucle es infinito, ademas de que me acabo de dar cuenta que imprime el mensaje de error el mismo numero de veces que la cantidad de caracteres
Valora esta pregunta


0