Dev - C++ - Por que no me ejecuta el do while?

 
Vista:
sin imagen de perfil
Val: 6
Ha disminuido su posición en 6 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Por que no me ejecuta el do while?

Publicado por daniel (4 intervenciones) el 18/03/2018 20:56:44
hola amigos, estaba haciendo un ejercicio en c, el problema que tengo es que no me ejecuta correctamente un bucle que metí al final del programa, es un do-while, el punto es que se sale y no me deja repetir lo que quiero...
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include<stdio.h>
int leer();
char lee();
float salario(int);
int hoext(int,int);
int main(){
	int o,q;
	char continuar;
	do{//aqui comienza el bucle...
		printf("A que categoria pertenece el trabajador?\n1\n2\n3\n4\n5\n6,7,8\n");
		o=leer();
		q=salario(o);
 
                printf("\nDesea repetir la accion?\nn/N=No\ns/S=si");//aqui es donde yo le digo al programa que le pregunte al usuario si quiere continuar
		continuar=lee();
		fflush(stdin);
	}while(continuar=='s'||continuar=='S');//aqui evalua la expresion, pero automaticamente se sale y no me deja elgir 
	return 0;
}
float salario(int o){
	float pq,http;
	int che,calculo;
	switch(o){
		case 1:
			pq=(50.20*8)*15;
			che=30;
			calculo=hoext(o,che);
			http=pq+calculo;
		break;
		case 2:
			pq=(63.82*8)*15;
			che=38;
			calculo=hoext(o,che);
			http=pq+calculo;
		break;
		case 3:
			pq=(125.36*8)*15;
			che=50;
			calculo=hoext(o,che);
			http=pq+calculo;
		case 4:
			pq=(175.57*8)*15;
			che=70;
			calculo=hoext(o,che);
			http=pq+calculo;
		case 5:
		case 6:
		case 7:
			pq=(252.94*8)*15;
			calculo=hoext(o,che);
			http=pq+calculo;
		break;
	}
		printf("El pago quiencenal sin horas extra es de: %f\n",pq);
		printf("tu pago total quincenal mas tus horas extra es de:%f",http);
	return che;
}
int hoext(int o, int che){
	char le;
	int het,hep,he;
	printf("\nTrabajo horas extra?\n1=si \n2=no\n");
	le=leer();
	if (le==1){
		if((o==1)||(o==2)||(o==3)){
			printf("\ncuantas horas extra se trabajaron?\n");
			het=leer();
				if(het<=22){
					hep=het*che*2;
				}else if(het>=23){
					while(he>8){
						printf("\ncuantas horas extra se trabajaron despues de las 22?(solo se pagaran las primeras 8, no trates de enga%carme)\n",164);
						he=leer();
					}
					hep=(22*che*2)+(he*che*3);
				}
		}else if((o=5)||(o==6)||(o==7)){
			printf("\nEl trabajador no aplica para pago de horas extra\n");
		}
	}else if(le==2){
		printf("\nNo se tendra salario extra\n");
	}
}
char lee(){
	char f;
	scanf("%c",&f);
	return f;
}
int leer(){
	int n;
	scanf("%i",&n);
	return n;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Por que no me ejecuta el do while?

Publicado por harol (31 intervenciones) el 19/03/2018 01:31:26
Escribelo en este orden
1
2
fflush(stdin);
continuar=lee();
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar