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


 


Tema destacado: Página de elhacker.net en Google+ Google+


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  Problema con arreglos, estructuras y funciones
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con arreglos, estructuras y funciones  (Leído 384 veces)
ody532

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Problema con arreglos, estructuras y funciones
« en: 20 Abril 2017, 03:26 »

Tengo un problema, tengo 3 funciones el main y 2 creadas por mi una de registro y otra de impresion
el problema es que es una estructura con arreglos, al registrar no hay problema pero nose como mandar estos registros al main y que de ahi se impriman con la funcion de impresion

debe de ser en lenguaje C y no puedo declarar en el area global el arreglo, espero me puedan ayudar

este es el programa que llevo:

Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. struct alumnos
  4. {
  5. int matricula;
  6. char nombre[50];
  7. char apellido[50];
  8. char correo[50];
  9. char celular[12];
  10. int cal[7];
  11. };
  12. int registro(struct alumnos b[], int elementos);
  13. void impresion_datos(struct alumnos b[], int elementos);
  14. int main()
  15. {
  16. struct alumnos a[50];
  17. int op,z=0;
  18. while(z<50)
  19. {
  20. printf("teclee la opcion que desea realizar:  ");
  21. printf("\n1. Registrar los datos del alumno\n2.Modificar alumno\n3. Eliminar alumno\n4. Imprimir los datos de los alumnos\n5. Imprimir calificaciones de los alumnos\n6. Salir");
  22. scanf("%d",&op);
  23. system("cls");
  24. switch (op)
  25. {
  26. case 1: registro(a,50);break;
  27. case 2: impresion_datos(a,50); break;
  28. }
  29. z++;
  30. }
  31. }
  32. int registro(struct alumnos b[], int elementos)
  33. {
  34. int q;
  35. int c;
  36. int i=0;
  37. int ca=0;
  38. int op3;
  39.  
  40. printf("Matricula:  "); scanf("%d", &b[i].matricula); fflush(stdin);
  41. printf("\nNombre:  "); gets(b[i].nombre); fflush(stdin);
  42. printf("\nApellido:  "); gets(b[i].apellido); fflush(stdin);
  43. printf("\nCorreo:  "); gets(b[i].correo); fflush(stdin);
  44. printf("\nCelular"); gets(b[i].celular); fflush(stdin);
  45. for(q=0;q<6;q++)
  46. {
  47. printf("\n Cal %d del alumno %d:  ",q,i); scanf("%d",&b[i].cal[q]); fflush(stdin);
  48. b[i].cal[6]=((b[i].cal[0]*.20)+(b[i].cal[1]*.20)+(b[i].cal[2]*.20)+(b[i].cal[3]*.20)+(b[i].cal[4]*.10)+(b[i].cal[5]*.10));
  49. }
  50. ca=ca+1;
  51. for(i=0;i<ca;i++)
  52. {
  53. for(q=0;q<7;q++)
  54. {
  55. printf ("cal %d del alumno %d:   ",q,i); printf("%d\n", b[i].cal[q]);
  56. }
  57. }
  58. printf("para regresar al menu presione 1:  "); scanf("%d",&op3);
  59. system("cls");
  60. }
  61. void impresion_datos(struct alumnos b[], int elementos)
  62. {
  63. int i;
  64. printf("Matricula\t\tNombre\t\t\tApellido\t\tCelular\t\tCorreo");
  65. for(i=0;i<50;i++)
  66. {
  67. printf("%d\t\t",b[i].matricula);
  68. printf("%d\t\t",b[i].nombre);
  69. printf("%d\t\t",b[i].apellido);
  70. printf("%d\t\t",b[i].celular);
  71. printf("%d\t\t",b[i].correo);
  72. }
  73. }[/b]


· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro
-Engel Lex


« Última modificación: 20 Abril 2017, 03:43 por engel lex » En línea

MAFUS


Desconectado Desconectado

Mensajes: 893



Ver Perfil
Re: Problema con arreglos, estructuras y funciones
« Respuesta #1 en: 20 Abril 2017, 10:01 »

Tienes unos cuantos errores, pero empecemos por el primero:
La lógica de la función main está mal planteada. Repites 50 veces en bucle la función y no puedes salir de él aunque uses la función 6 del menú. Eso no debería ser así sino que el bucle debería repetirse mientras no se elija la función 6.

Cuando soluciones eso podremos continuar.


En línea

while(is_alive(yourself)) {
    make_true(yourself, yourdreams);
}
ody532

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Problema con arreglos, estructuras y funciones
« Respuesta #2 en: 20 Abril 2017, 20:35 »

Tienes unos cuantos errores, pero empecemos por el primero:
La lógica de la función main está mal planteada. Repites 50 veces en bucle la función y no puedes salir de él aunque uses la función 6 del menú. Eso no debería ser así sino que el bucle debería repetirse mientras no se elija la función 6.

Cuando soluciones eso podremos continuar.



Pero y si en la opcion 6 le pongo z=49 y se suma con el z++ se saldria del ciclo y terminaria no?
En línea

MAFUS


Desconectado Desconectado

Mensajes: 893



Ver Perfil
Re: Problema con arreglos, estructuras y funciones
« Respuesta #3 en: 21 Abril 2017, 10:43 »

Sí, pero de seguro ese no es el efecto que debes buscar. ¿Por qué repites 50 veces el bucle? Porqué no es por las 50 posiciones del array porqué eso debes tratarlo de otra forma.

Los menús se hacen de otra forma:
Algo así:
- BUCLE MENÚ
- Imprime Título
- Imprime primera opción
- Imprime segunda opción
- ...
- Imprime la opción de salida
-
- Pide la opción a elegir
- Si la opción no está en el menú repetir el menú
- Asociar a cada opción una función diferente, cada función iniciará el trabajo que se espera.
- Si la opción elegida es la de salir terminar el BUCLE MENÚ
- Repetir el BUCLE MENÚ
En línea

while(is_alive(yourself)) {
    make_true(yourself, yourdreams);
}
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda.... busqueda especifica en arreglos de estructuras
Programación C/C++
andi1991 7 2,247 Último mensaje 23 Julio 2009, 01:36
por Flakito81
Problema de Estructuras con Funciones « 1 2 »
Programación C/C++
diego-4 12 1,704 Último mensaje 10 Noviembre 2012, 18:46
por diego-4
Arreglos y estructuras en C. Ayuda.
Programación C/C++
Xgirl12 5 1,035 Último mensaje 12 Abril 2013, 06:23
por Xgirl12
[?]Estructuras y funciones.
Programación C/C++
Ultra Holocaust 0 540 Último mensaje 22 Junio 2015, 05:02
por Ultra Holocaust
Arreglos a funciones
Programación C/C++
mc275 1 267 Último mensaje 19 Abril 2017, 18:25
por MAFUS
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines