elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Me pueden ayudar con este algoritmo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Me pueden ayudar con este algoritmo  (Leído 1,030 veces)
David Marquez

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Me pueden ayudar con este algoritmo
« en: 24 Octubre 2016, 04:37 »

Este es mi codigo a la hora de compilar y ejecutar todo bn, pero al momento de llenar los campos cuando te pide el q ingreses el sexo se estropea , ejemplo


1. Escriba su nombre: Pedro
1. Escriba su cedula: 2476451
1. escriba su sexo: 1. escriba su edad: desde aqui aparece junto en vez de dar una opcion da dos
1. escriba su carrera: 1. escriba su semestre aqui igual

tengo varios dias con esta duda estoy aprendiendo lenguaje c solo y apenas llevo varios meses si me ayudaran explicando que esta mal se los agradeceria

quiero llenar una tabla con diferentes datos y mostrar en pantalla
este es el codigo completo.

gracias de antemano...



Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. struct info_materia{
  5. char materia[20];
  6. int codigo;
  7. int credito;
  8. int calificacion;
  9. }materia[4];
  10.  
  11. struct info_alumno{
  12. char sexo[20];
  13. char carrera[20];
  14. int semestre;
  15. int cedula;
  16. int edad;
  17. };
  18.  
  19. struct alumno{
  20. char nombre[20];
  21. struct info_alumno dato_alumno;
  22. struct info_materia dir_materia;
  23. float promedio;
  24. }alumno[5];
  25.  
  26. int main(){
  27. int i;
  28.  
  29. for(i=0;i<2;i++){
  30. fflush(stdin);
  31. printf("%d. Escriba su nombre: ",i+1);
  32. gets(alumno[i].nombre);
  33.  
  34. printf("%d. Escriba su cedula: ",i+1);
  35. scanf("%d",&alumno[i].dato_alumno.cedula);
  36.  
  37. printf("%d. escriba su sexo: ",i+1);
  38. gets(alumno[i].dato_alumno.sexo);
  39.  
  40. printf("%d. escriba su edad: ",i+1);
  41. scanf("%d",&alumno[i].dato_alumno.edad);
  42.  
  43. printf("%d. escriba su carrera: ",i+1);
  44. gets(alumno[i].dato_alumno.carrera);
  45.  
  46. printf("%d. escriba su semestre",i+1 );
  47. scanf("%d",&alumno[i].dato_alumno.semestre);
  48.  
  49. printf("\n");
  50. }
  51. for (i=0;i<2;i++){
  52. printf("\nDatos del estudiante n° %d: ",i+1);
  53.  
  54. printf("\nNombre: %s",alumno[i].nombre);
  55.  
  56. printf("\nCedula: %d",alumno[i].dato_alumno.cedula);
  57.  
  58. printf("\nSexo: %s",alumno[i].dato_alumno.sexo);
  59.  
  60. printf("\nEdad:%s",alumno[i].dato_alumno.edad);
  61.  
  62. printf("\nCarrera: %s\n",alumno[i].dato_alumno.carrera);
  63.  
  64. printf("\nSemestre: %d\n",alumno[i].dato_alumno.semestre);
  65. }
  66. system ("pause");
  67. return 0;
  68. }


Mod: Los códigos deben ir en etiquetas GeSHi


« Última modificación: 24 Octubre 2016, 04:41 por engel lex » En línea

class_OpenGL


Desconectado Desconectado

Mensajes: 437

Si usas Direct3D, no eres mi amigo :P


Ver Perfil
Re: Me pueden ayudar con este algoritmo
« Respuesta #1 en: 24 Octubre 2016, 09:16 »

Creo que el problema viene de cuando usas scanf (cliché). Prueba, a la hora de pedir el entero, esto:

Código
  1. char str_numero[10];
  2.  
  3. ...
  4.  
  5. printf("%d. Escriba su cedula: ",i+1);
  6. fgets(stdin, str_celula, 10);
  7. alumno[i].dato_alumno.cedula = atoi(str_celula);
  8.  
  9. ...


En línea

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL
JufeXXC

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Me pueden ayudar con este algoritmo
« Respuesta #2 en: 1 Octubre 2020, 08:59 »

Eso sucede cuando se llana el buffer, intenta poner cin.ignore(); antes donde salta la linea



MOD: No reabrir temas antiguos
MOD: Tema cerrado
« Última modificación: 1 Octubre 2020, 12:05 por K-YreX » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines