Dev - C++ - Programa que lea los datos de n trabajadores y que imprima los datos del empleado por salario

 
Vista:
sin imagen de perfil

Programa que lea los datos de n trabajadores y que imprima los datos del empleado por salario

Publicado por Kevin (3 intervenciones) el 19/11/2014 23:01:30
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
/*1)	La información de todos los empleados de la empresa DATASYSTEM 
está almacenada en una variable de tipo structura  
llamada "empleado". La información con que se cuenta de 
cada empleado es: nombre, sexo y sueldo. 
Realizar un programa en C lea los  
datos de los N trabajadores de la empresa 
y que imprima los datos del empleado con mayor y menor salario.*/
 
#include<stdio.h>
#include<stdlib.h>
 
struct empleado{
	char nombre[100];
	char sexo[20];
	int sueldo;
};
 
main(){
	int N;
	printf("Ingrese la cantidad de empleados de DATASYSTEM: ");
	scanf("%d",&N);
	struct empleado E[N];
 
	int i;
	for(i=0;i<N;i++){
		printf("Ingrese los datos del empleado %d\n",(i+1));
		printf("Nombre: ");
		gets(E[i].nombre);
		printf("\n");
		printf("Sexo: ");
		gets(E[i].sexo);
		printf("Sueldo: ");
		scanf("%d",&E[i].sueldo);
		printf("\n\n");
	}
}


Hooola... Tengo un problema con este programa y quisiera saber si me pueden ayudar... ah y no se puede utilizar los comandos cin o cout jejejejeje... no nos permiten... Desde ya gracias
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
Imágen de perfil de vangodp
Val: 73
Ha disminuido 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Programa que lea los datos de n trabajadores y que imprima los datos del empleado por salario

Publicado por vangodp (287 intervenciones) el 20/11/2014 07:22:29
Eso es por que enter tambien es un char.

ejemplo... si tienes que hacer 2 scanfs en los cuales 1º vas a leer un int y luego pulsas enter, lo que acontece es que cuando entras con un numero como bien puede ser el 23 y pulsas enter todo eso se va a parar al buffer, pero como 1º pides un numero el 23 se va a parar en la 1º variable y en la 2º que sera nuestro char pues ya se le mete el enter en ella haciendola saltar.
La solucion pasa por limpiar el buffer despues de cada lectura o bien ignorar el enter que es en lo que se base este codigo.
Existe la funcion fflush pero no la recomiendo que la uses con caracteres.
Busque formas de vaciar el buffer sin usar fflush.
Te dejo estos 2 temas para leer (no reinventar la rueda recuerda XDD).
http://foro.noticias3d.com/vbulletin/showthread.php?t=121100
http://foro.elhacker.net/programacion_cc/borrar_buffer_como_funciona_getchar-t375834.0.html

Y mi forma ignorando el enter para que no entre al buffer y asi evitar limpiarlo:

http://codepad.org/YPvVWyen
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
#include<stdio.h>
#include<stdlib.h>
 
 
struct empleado {
    char nombre[100];
    char sexo[20];
    int sueldo;
};
 
 
 
main() {
    int N;
    printf ( "Ingrese la cantidad de empleados de DATASYSTEM: " );
    scanf ( "%d%*c", &N );
    struct empleado E[N];
 
    int i;
 
    for ( i = 0; i < N; i++ ) {
        printf ( "Ingrese los datos del empleado %d\n", ( i + 1 ) );
        printf ( "Nombre: " );
        scanf ( "%99[^\n]%*c", E[i].nombre );
        printf ( "\n" );
        printf ( "Sexo: " );
        scanf ( "%19[^\n]%*c", E[i].sexo );
        printf ( "Sueldo: " );
        scanf ( "%d%*c", &E[i].sueldo );
        printf ( "\n\n" );
    }
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
5
Comentar
sin imagen de perfil

Programa que lea los datos de n trabajadores y que imprima los datos del empleado por salario

Publicado por Kevin (3 intervenciones) el 20/11/2014 21:04:46
Muchas Gracias mann!!
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

Programa que lea los datos de n trabajadores y que imprima los datos del empleado por salario

Publicado por ken Luis Rojas (1 intervención) el 13/06/2018 15:00:59
Necesito realizar un programa en consola, que acepte los siguientes datos:
nombre
apellido
cedula
direccion
telefono
tipo de sangre
sexo
salario
fecha de nacimiento
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

Programa que lea los datos de n trabajadores y que imprima los datos del empleado por salario

Publicado por ramon (1 intervención) el 04/09/2018 00:12:04
buen dia
soy nuevo en esto de la programación y observe el código y todo esta entendible excepto

1
2
3
4
5
6
7
8
9
10
11
12
13
14
for ( i = 0; i < N; i++ ) {
        printf ( "Ingrese los datos del empleado %d\n", ( i + 1 ) );
        printf ( "Nombre: " );
        scanf ( "%99[^\n]%*c", E[i].nombre );   /*[por que el % y 99[^\n] por que no solo "%c", e[i].nombre*/
        printf ( "\n" );
        printf ( "Sexo: " );
        scanf ( "%19[^\n]%*c", E[i].sexo ); /* porque el 19 despues del % y esto para que es [^\n] */
        printf ( "Sueldo: " );
        scanf ( "%d%*c", &E[i].sueldo );
        printf ( "\n\n" );
 
 "%d%*c"
"%99[^\n]%*c"
 "%19[^\n]%*c"

estas 3 son mis dudas me pueden explicar, gracias
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

Programa que lea los datos de n trabajadores y que imprima los datos del empleado por salario

Publicado por luis (1 intervención) el 14/05/2020 22:11:37
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
#include<iostream>
using namespace std;
int main() {
	int num;
	cout << "-----------------------------BIENVENIDOS A LA BASE DE DATOS DE EMPLEADOS---------------------------" << endl;
	cout << "-------------------------------------------Empleados------------------------------------------------" << endl;
	cout << "1.-Lizbhet Rojas   | 11.-Paloma Diaz    | 21.-Magdalena Herrera| 31.-Ivana Montana | 41.-Tania Costa " << endl;
	cout << "2.-Juan Salasar    | 12. Enrique Bura   | 22.-Dafne Huerta     | 32.-Roselin Prieto| 42.-Freddy Zaragoza" << endl;
	cout << "3.-Francisco Rojas | 13.-Julia Vera     | 23.-Isabel Lopez     | 33.-Karol Pasten  | 43.-Alexa Muños" << endl;
	cout << "4.-Diana Garcia    | 14.-Rodrigo Islas  | 24.-Camila Tevez     | 34.-Sam Cortez    | 44.-Cynthia Platas" << endl;
	cout << "5.-Juan Osorio     | 15.-Isabel Flores  | 25.-Ana Infante      | 35.-Rolando Macias| 45.-Estefania Castillo" << endl;
	cout << "6.-Luis Islas      | 16.-Guadalupe Caro | 26.-Ronian Ramirez   | 36.-Mariam Corona | 46.-Dulce Juarez" << endl;
	cout << "7.-Mia Hernandez   | 17.-Ramon Montana  | 27.-Elba Martinez    | 37.-Saymon Perez  | 47.-Eduardo Torres" << endl;
	cout << "8.-Ivana Aguilar   | 18.-Rosa perez     | 28.-Maria Del Monte  | 38.-Sonia Elas    | 48.-Shuay Galindo" << endl;
	cout << "9.-Jose Quintero   | 19.-Samuel Villa   | 29.-Jessica Barrio   | 39.-Ricardo Reyes | 49.-Gael Ambrocio" << endl;
	cout << "10.-Rogelio Duran  | 20.-Alison Beaker  | 30.-Salome Bastida   | 40.-Juana Escobedo| 50.-Jhon Islas" << endl;
	cout << "----------------------------------------------------------------------------------------------------------" << endl;
	cout << "Eliga una opcio´n a revizar" << endl;
	cout << "1.-Empleados con sueldo mayor de $30,000 al mes (salario alto)" << endl;
	cout << "2.-Empleados con sueldo menor de $30,000 a $10,000 (salario medio)" << endl;
	cout << "3.-Empleados con sueldo menor de $10,000 al mes (sueldo salario bajo)" << endl;
	switch (num) {
	case "1":
		cout << "Los empleados con un salario mayor de $30,000 al mes son:" << endl;
		cout << "8.-Ivana Aguilar" << endl;
		cout << "39.-Ricardo Reyes" << endl;
		cout << "29.-Jessica Barrio" << endl;
		cout << "11.-Paloma Diaz" << endl;
		cout << "48.-Shuay Galindo" << endl;
		cout << "41.-Tania Costa" << endl;
		cout << "14.-Rodrigo Islas" << endl;
		cout << "2.-Juan Salasar" << endl;
		cout << "17.-Ramon Montalvo" << endl;
		cout << "26.-Ronian Ramirez" << endl;
		break;
	case "2":
		cout << "Los empleados con sueldo menor de $30,000 a $10,000 al mes son:" << endl;
		cout << "10.-Rogelio Duran" << endl;
		cout << "19.-Samuel Villa" << endl;
		cout << "49.-Gael Ambrocio" << endl;
		cout << "12.-Enrique Bura" << endl;
		cout << "47.-Eduardo Torres" << endl;
		cout << "13.-Julia Vera" << endl;
		cout << "1.-Lizbhet Rojas" << endl;
		cout << "18.-Rosa Perez" << endl;
		cout << "24.-Camila Tevez" << endl;
		cout << "20.-Alison Beaker"<< endl;
		cout << "50.-Jhon Islas" << endl;
		cout << "15.-Isbel Flores" << endl;
		cout << "45.-Estefania Castillo" << endl;
		cout << "32.-Roselin Prieto" << endl;
		break;
	case "3":
		cout << "Los empleados con un sueldo menor de $10,000 al mes son:" << endl;
		cout << "3.-Francisco Rojas" << endl;
		cout << "4.-Diana Garcia" << endl;
		cout << "5.-Juan Osorio" << endl;
		cout << "6.-Luis Islas" << endl;
		cout << "7.-Mia Hernandez" << endl;
		cout << "9.-Jose Quintero" << endl;
		cout << "16.-Guadalupe Caro" << endl;
		cout << "21.-Magdalena Hernandez" << endl;
		cout << "22.-Dafne Huerta" << endl;
		cout << "23.-Isael Lopez" << endl;
		cout << "25.-Ana Infante" << endl;
		cout << "27.-Elba Martinez" << endl;
		cout << "28.-Maria Del Monte" << endl;
		cout << "30.-Salome Bastida" << endl;
		cout << "31.-Ivana Montana" << endl;
		cout << "33.-Karol Pasten" << endl;
		cout << "34.-Sam Cortez" << endl;
		cout << "35.-Rolando Macias" << endl;
		cout << "36.-Mariam Corona" << endl;
		cout << "37.-Saymon Perez " << endl;
		cout << "38.-Sonia Elas" << endl;
		cout << "40.-Juan Escobedo" << endl;
		cout << "42.-Freddy Zaragoza" << endl;
		cout << "43.-Alexa Muños" << endl;
		cout << "44.-Cynthia Platas" << endl;
		cout << "46.-Dulce juarez" << endl;
		cout << "48.-Shuay Galindo" << endl;
		break;
	default:
		cout << "Lo sentimos, usted a elegido una opcion que no existe" << endl;
	}
	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
0
Comentar