Foros DeCeMuLaDoReS

Retroceder   Foros DeCeMuLaDoReS > PC > Programación

Programación Escribe aquí todo lo relacionado sobre programación, ya sea C, C++, PHP, etc, etc...

Respuesta
 
LinkBack Herramientas
  #1 (permalink)  
Antiguo 13-Nov-2009, 04:58
Avatar de Im_PaCt
Im_PaCt no se puede cailificar en este momento
DC Junior
 
Fecha de Ingreso: 05-March-2008
Mensajes: 23
Posts agradecidos: 4
Agradecido 0 veces en 0 posts
Predeterminado Problema en C (es facil ayuda xD)

emm bueno lo que quiero hacer es que el programa pida los datos del empleado (nombre dni tel etc) determinada cantidad de veces en este caso dos y despues los saque por pantalla (en realidaad son mas cosas pero no me sale esto xD). lo que pasa es que me pide los datos de todos los printf pero despues que pide el ultimo no vuelve el bucle y se termina la ejecucion del programa, alguien me da una mano? jeje




#include <stdio.h>
#include <conio.h>
#include <string.h>

struct empleado {
int leg,edad;
double dni,tel;
char nomb[30],dir[30],loc[30];
float sueldo;
};

int menu();


void main()
{
struct empleado empl[2];
int i;

clrscr();

for(i=0;i<2;i++)
{
printf("Ingrese numero de legajo\n");
scanf("%d", & empl[i].leg);
printf("Ingrese numero de documento\n");
scanf("%d", & empl[i].dni);
printf("Ingrese Nombre y apellido\n");
fflush(stdin);
gets(empl[i].nomb);
printf("Ingrese edad\n");
scanf("%d", & empl[i].edad);
printf("Ingrese telefono\n");
scanf("%d", & empl[i].tel);
printf("Ingrese direccion\n");
fflush(stdin);
gets(empl[i].dir);
printf("Ingrese localidad\n");
fflush(stdin);
gets(empl[i].loc);
printf("Ingrese sueldo basico\n");
scanf("%f", & empl[i].sueldo);


}


for(i=0;i<2;i++)
{
printf("%d", empl[i].leg);
puts(empl[i].nomb);

}


getch();


}
Responder Citando
  #2 (permalink)  
Antiguo 13-Nov-2009, 10:27
LiderSS no se puede cailificar en este momento
DC Junior
 
Fecha de Ingreso: 13-November-2009
Mensajes: 1
Posts agradecidos: 0
Agradecido 1 vez en 1 post
Predeterminado Respuesta: Problema en C (es facil ayuda xD)

Compilado en Dev-C++ bajo Windows el programa tira perfectamente, es mas no tiene ningun error a simple vista. El unico problema que he encontrado antes de compilar es que devc trae mal la libreria conio por lo que he omitido dicha libreria y la funcion clrscr();

//#include <conio.h>
//clrscr();

Asi que revisa tu compilador o a omitir las lineas que te he comentado porque el programa funciona sin problemas.... pide los datos dos veces e imprime.
Responder Citando
Los siguientes usuarios agradecieron a LiderSS este mensaje:
Im_PaCt (14-Nov-2009)
  #3 (permalink)  
Antiguo 13-Nov-2009, 13:48
elnene llegará a ser famoso muy pronto
DC Avanzado
 
Fecha de Ingreso: 15-January-2007
Mensajes: 102
Posts agradecidos: 3
Agradecido 9 veces en 8 posts
Predeterminado Respuesta: Problema en C (es facil ayuda xD)

Eso mismo estaba pensando cuando vi el codigo... iba a preguntar si estas usando los compiladores Borland. Se que esa libreria esta incluida.
Responder Citando
  #4 (permalink)  
Antiguo 13-Nov-2009, 15:13
Avatar de Hagane1
Hagane1 está en el buen camino
It's raining.
 
Fecha de Ingreso: 25-November-2008
Ubicación: España
Mensajes: 3.922
Posts agradecidos: 285
Agradecido 1.073 veces en 594 posts
Predeterminado Respuesta: Problema en C (es facil ayuda xD)

para dev c++ si esta la libreria conio, hecha por un programador independiendte y de hecho la tengo, en un rato la subo que ahora estoy en la escuela, enviame un mp para que no se me olvide.

para usar el clear screen en dev c++ sin nada extra solo escribe

#include <windows.h>

system ("pause"); //puede detener la ejecución de un programa
system ("clrscr"); // puede limpiar la pantalla
__________________

Jugando: The King of Fighters XIII

Need for Speed Hot Pursuit, Marvel Super Hero Squad, Modern Warfare 2, Iron Man 2, The godfather II, Mafia II, Lego Indiana Jones II

Última edición por Hagane1; 13-Nov-2009 a las 15:16
Responder Citando
Los siguientes usuarios agradecieron a Hagane1 este mensaje:
Im_PaCt (14-Nov-2009)
  #5 (permalink)  
Antiguo 13-Nov-2009, 23:16
Avatar de Im_PaCt
Im_PaCt no se puede cailificar en este momento
DC Junior
 
Fecha de Ingreso: 05-March-2008
Mensajes: 23
Posts agradecidos: 4
Agradecido 0 veces en 0 posts
Predeterminado Respuesta: Problema en C (es facil ayuda xD)

bueno gracias por las respuestas pero en borland no me anduvo no se por q -.- , pero igual complete mas el ejercicio, que era pedir una determinada cantidad de datos a 20 empleados (le puse 5 para hacerlo corto(?)), y tambien habia que hacer un menu. Y justamente ahi me tope con un problema, pues cuando pongo un numero de dni (doc. nacional de identidad) que tiene 8 dogitos si lo guardo en una variable float no queda tal cual se ingreso =/ , me di cuenta de eso por que cuando comparaba me daba como que eran diferentes. El codigo hasta ahora quedo asi, llegue hasta la opcion de comparacion de dni obviamente :p


#include <stdio.h>
#include <conio.h>
#include <string.h>

int i=0;
char rta='s';

struct empleado
{
int leg,edad;
char nomb[30],dir[30],loc[30];
float sueldo,dni,tel;
} ;

/*Declaracion de funciones*/
int menu();
void prosc();
void opc2();


struct empleado empl[5];


main()
{
int j=0;


clrscr();

while(rta=='s')
{
switch(menu())
{
case 1:
prosc();
break;
case 2:
opc2();
break;
}
printf("Desea continuar? (n/s)");
fflush(stdin);
scanf("%c", & rta);
}
getch();
return 0;

}


/*Funciones*/
int menu()
{
int opc;
if (empl[0].leg==0)
{
printf("1- Alta de empleados\n");
scanf("%d", & opc);
}
else
{
printf("Seleccione una opcion:\n");
printf("1- Alta de empleados\n");
printf("2- Modificar la direccion a traves del ingreso de DNI");
printf("3- Listar por apellido (A-Z)\n");
printf("4- Obtener el empleado con mayor sueldo basico\n");
printf("5- Obtener el empleado con menor sueldo bsaico \n");
printf("6- Listar por localidades (A-Z)\n");
scanf("%d", & opc);
}

return opc;

}

void prosc()
{

printf("ingrese numero de legajo\n");
scanf("%d", & empl[i].leg);
printf("ingrese numero de documento\n");
scanf("%d", & empl[i].dni);
printf("ingrese nombre y apellido\n");
fflush(stdin);
gets(empl[i].nomb);
printf("ingrese edad\n");
scanf("%d", & empl[i].edad);
printf("Ingrese telefono\n");
scanf("%d", & empl[i].tel);
printf("Ingrese direccion\n");
fflush(stdin);
gets(empl[i].dir);
printf("ingrese localidad\n");
fflush(stdin);
gets(empl[i].loc);
printf("ingrese sueldo basico\n");
scanf("%f", & empl[i].sueldo);

}

void opc2()
{
int cont=0;
float doc,doca=0;
printf("Ingrese DNI");
scanf("%f", & doc);
for(cont=0;cont<5;cont++)
{
if (doc==empl[cont].dni)
{
doca=cont;
}
}
if (doca==0)
{printf ("Ingrese DNI valido");}
else
{
printf("la direccion es %s, ingrese la nueva direccion:",empl[cont].dir);
gets (empl[cont].dir);
}

}
Responder Citando
  #6 (permalink)  
Antiguo 14-Nov-2009, 03:00
elnene llegará a ser famoso muy pronto
DC Avanzado
 
Fecha de Ingreso: 15-January-2007
Mensajes: 102
Posts agradecidos: 3
Agradecido 9 veces en 8 posts
Predeterminado Respuesta: Problema en C (es facil ayuda xD)

Un numero de 8 digitos no es la mejor opcion para una variable float; sobre todo si el numero no contiene cifras decimales. Te recomendaria que para esas variables utilizes un char[] del largo que quieras. La comparacion no es tan directa como un "==" pero funciones recursivas para comparar "strings" se pueden conseguir facil en internet.

Wow... entrada para 20 empleados?? Suena una entrada divertida... jajaja
Responder Citando
  #7 (permalink)  
Antiguo 14-Nov-2009, 17:23
Avatar de Im_PaCt
Im_PaCt no se puede cailificar en este momento
DC Junior
 
Fecha de Ingreso: 05-March-2008
Mensajes: 23
Posts agradecidos: 4
Agradecido 0 veces en 0 posts
Predeterminado Respuesta: Problema en C (es facil ayuda xD)

Cita:
Iniciado por elnene Ver Mensaje
Un numero de 8 digitos no es la mejor opcion para una variable float; sobre todo si el numero no contiene cifras decimales. Te recomendaria que para esas variables utilizes un char[] del largo que quieras. La comparacion no es tan directa como un "==" pero funciones recursivas para comparar "strings" se pueden conseguir facil en internet.

Wow... entrada para 20 empleados?? Suena una entrada divertida... jajaja
otra pregunta xD, cuando comparo con strcmp dos dni aunque sean iguales no devuelve 0, obviamente con palabras si pero con numeros no si los guardo en un vector char, alguna idea ? jeej
Responder Citando
  #8 (permalink)  
Antiguo 14-Nov-2009, 20:18
Avatar de Tailmon
Tailmon llegará a ser famoso muy pronto
DC's digimon
 
Fecha de Ingreso: 20-July-2008
Ubicación: digital world
Mensajes: 274
Posts agradecidos: 47
Agradecido 53 veces en 41 posts
Predeterminado Respuesta: Problema en C (es facil ayuda xD)

por que en vez de usar una arreglo de chars, por que no usas algun tipo de entero largo, tales como un long int o algun entero de 64 bits, asi sera mas facil que controles los valores je je XD
__________________
テイルモン
Spoiler para Para paginas:
Responder Citando
Los siguientes usuarios agradecieron a Tailmon este mensaje:
Im_PaCt (14-Nov-2009)
  #9 (permalink)  
Antiguo 14-Nov-2009, 21:38
Avatar de Im_PaCt
Im_PaCt no se puede cailificar en este momento
DC Junior
 
Fecha de Ingreso: 05-March-2008
Mensajes: 23
Posts agradecidos: 4
Agradecido 0 veces en 0 posts
Predeterminado Respuesta: Problema en C (es facil ayuda xD)

Cita:
Iniciado por Tailmon Ver Mensaje
por que en vez de usar una arreglo de chars, por que no usas algun tipo de entero largo, tales como un long int o algun entero de 64 bits, asi sera mas facil que controles los valores je je XD
aaaa bue mejor, gracias xD, una ultima consulta que mascara uso para variables tipo long con el scanf ? e.e
Responder Citando
  #10 (permalink)  
Antiguo 14-Nov-2009, 21:50
Avatar de Fire
Fire no se puede cailificar en este momento
~火~
 
Fecha de Ingreso: 07-November-2008
Ubicación: México
Mensajes: 191
Posts agradecidos: 127
Agradecido 10 veces en 9 posts
Enviar un mensaje por MSN a Fire
Predeterminado Respuesta: Problema en C (es facil ayuda xD)

Creo que te refieres a la sintaxis:

scanf(%?,&var)


donde "var" es el nombre de tu variable y "%?" es el tipo segun lo siguiente:

%ld - %li
..... long int
%lu.............
unsigned long int


Espero que sea eso a lo que te referias.
Saludos.

PD: corrijanme si estoy mal .
__________________
Spoiler para gracias xoox:

Última edición por Fire; 14-Nov-2009 a las 21:55
Responder Citando
Los siguientes usuarios agradecieron a Fire este mensaje:
Im_PaCt (14-Nov-2009)
Respuesta


(0 miembros y 1 visitantes)
 
Herramientas

Normas de Publicación
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los Códigos BB están Activado
Las Caritas están Activado
[IMG] está Activado
El Código HTML está Desactivado
Trackbacks are Activado
Pingbacks are Activado
Refbacks are Activado

Ir al Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problema al controlar los juegos de RPG Anakin RPG Maker 7 26-Oct-2010 19:36
Problema con teclado en aeRO (Ragnarok) varyto Juegos (On-line, Off-line) 7 02-Sep-2008 01:54
!!Problema Rakion!! Blinde Juegos (On-line, Off-line) 1 31-Oct-2007 15:06
Problema con Doom 3 KanoLucifer Juegos (On-line, Off-line) 7 27-Sep-2007 01:23


Torneo DC 2012
Torneo DC 2012

La franja horaria es GMT +1. Ahora son las 22:30.


Desarrollado por: vBulletin® Versión 3.8.2
Derechos de Autor ©2000 - 2012, Jelsoft Enterprises Ltd.
Traducido por mcloud de vBhispano.com
 

Content Relevant URLs by vBSEO 3.2.0