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
0