Dev - C++ - Mi programa compila, pero cuando ejecuta se congela y después se sale

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

Mi programa compila, pero cuando ejecuta se congela y después se sale

Publicado por Luis (1 intervención) el 28/04/2020 05:41:21
Que creen que puedan estar mal, en si se trata de toma n cantidad de empleados, tomar nombre, edad, sexo, tiempo en la empresa y el departamento en que trabaja, al final imprimir el porcentaje de mujeres en un departamento, mostrar el nombre y la edad de la persona que lleva mas tiempo trabajando, también que departamento tiene mas empleados, agradecería mucho su ayuda y consejo, de que me hizo falta, si tengo un código espagueti, como puedo hacer para mejorarlo, muchas gracias.

mi codigo fue asi:

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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
// N em pleados en la empresa
 
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<windows.h>
 
struct empleado{
 
	char nombre[50];
	char sexo[10];
	float edad, tiempo, departamento;
}emp[100];
 
int main(){
 
	int  n, i, posn=0;
	float d_compra=0, d_contabilidad=0, d_control=0,p_mujer=0, porcent, mayor=0;
 
	printf("Ingrese la cantidad de empleados en el sistema: \n");
	scanf("%d", n);
 
	for( i=0; i < n; i++)
	{
		printf("Ingrese los datos del empleado: \n");
 
		printf("Departamento, opcion 1.Compras, 2.Contabilidad, 3.Control de calidad, indique el numero [%d]: ",i+1);
		scanf("%s",emp[i].departamento);
 
 
		printf("Nombre[%d]: ",i+1);
		scanf("%s",emp[i].nombre);
 
		printf("Sexo m /f [%d]: ",i+1);
		scanf("%d",emp[i].sexo);
			//guardando el porcentaje de mujeres
			if(emp[i].sexo=="f" ){
				p_mujer++;
 
			}
 
		printf("edad[%d]: ",i+1);
		scanf("%d",emp[i].edad);
 
		printf("tiempo en la empresa [%d]",i+1);
		scanf("%d",emp[i].tiempo);
 
				//buscando el empleado con mayor tiempo
			if(mayor < emp[i].tiempo){
				mayor=emp[i].tiempo;
				posn=i;
			}
 
 
			//guardando datos de cada departamento
			if(emp[i].departamento == 1){
 
				d_compra++;
 
			}else
			if(emp[i].departamento == 2){
				d_contabilidad++;
			}else
			if(emp[i].departamento == 3){
				d_control++;
			}
 
 
 
 
 
	}
 
	//Buscando cual departamento tiene mayor numero de empleados para imprimir
	if (d_compra > d_contabilidad){
 
		if (d_compra>d_control){
 
			printf("\n El departamento de compra aglutina mas empleados.");
		}else{
 
			printf("\n El departemento de control aglutina mas empleados.");
		}
 
 
	}else
		if(d_contabilidad > d_control){
			printf("\n El departamento de contabilidad aglutina mas empleados.");
 
		}else{
			printf("\n El departamento de control aglutina mas empleados.");
		}
 
		//impresion de empleado con mayor salario
		printf("\n Empleado con mayor tiempo en la empresa: ");
		printf("\n Nombre: %s",emp[posn].nombre);
		printf("\n Edad: %d",emp[posn].edad);
 
 
 
	porcent = p_mujer / n ;
 
	printf("\n El porcentaje de mujeres en el departamento de compras es: %d",porcent);
 
 
	getch();
	return 0;
}
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
sin imagen de perfil
Val: 1.440
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Mi programa compila, pero cuando ejecuta se congela y después se sale

Publicado por dario (718 intervenciones) el 28/04/2020 08:36:20
Hola, es tu mismo codigo pero con algunas correcciones.
Fijate en la sintaxis del scanf.
Salu2.

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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#include<stdio.h>
#include<stdlib.h>
//#include<conio.h>
//#include<windows.h>
 
struct empleado{
 
	char nombre[50];
	char sexo;
	int edad, tiempo, departamento;
} emp[100];
 
int main(){
 
	int  n, i, posn=0;
	float d_compra=0, d_contabilidad=0, d_control=0,p_mujer=0, porcent=0.0, mayor=0;
 
	printf("Ingrese la cantidad de empleados en el sistema: \n");
	scanf("%d", &n);
 
	for( i=0; i < n; i++)
	{
		printf("Ingrese los datos del empleado: \n");
 
		printf("Departamento, opcion 1.Compras, 2.Contabilidad, 3.Control de calidad, indique el numero [%d]: ",i+1);
		scanf("%s",&emp[i].departamento);
 
 
		printf("Nombre[%d]: ",i+1);
		scanf("%s",&emp[i].nombre);
 
		printf("Sexo m /f [%d]: ",i+1);
		scanf("%s",&emp[i].sexo);
			//guardando el porcentaje de mujeres
			if(emp[i].sexo=='f' ){
				p_mujer++;
 
			}
 
		printf("edad[%d]: ",i+1);
		scanf("%d",&emp[i].edad);
 
		printf("tiempo en la empresa [%d]",i+1);
		scanf("%d",&emp[i].tiempo);
 
				//buscando el empleado con mayor tiempo
			if(mayor < emp[i].tiempo){
				mayor=emp[i].tiempo;
				posn=i;
			}
 
 
			//guardando datos de cada departamento
			if(emp[i].departamento == 1){
 
				d_compra++;
 
			}else
			if(emp[i].departamento == 2){
				d_contabilidad++;
			}else
			if(emp[i].departamento == 3){
				d_control++;
			}
 
 
 
 
 
	}
 
	//Buscando cual departamento tiene mayor numero de empleados para imprimir
	if (d_compra > d_contabilidad){
 
		if (d_compra>d_control){
 
			printf("\n El departamento de compra aglutina mas empleados.");
		}else{
 
			printf("\n El departemento de control aglutina mas empleados.");
		}
 
 
	}else
		if(d_contabilidad > d_control){
			printf("\n El departamento de contabilidad aglutina mas empleados.");
 
		}else{
			printf("\n El departamento de control aglutina mas empleados.");
		}
 
		//impresion de empleado con mayor salario
		printf("\n Empleado con mayor tiempo en la empresa: ");
		printf("\n Nombre: %s",emp[posn].nombre);
		printf("\n Edad: %d",emp[posn].edad);
 
 
 
	porcent = p_mujer / n ;
 
	printf("\n El porcentaje de mujeres en el departamento de compras es: %.2f",porcent);
 
 
	getchar();
	return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar