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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / Re: Problema con arreglos, estructuras y funciones en: 20 Abril 2017, 20:35 pm
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?
2  Programación / Programación C/C++ / Problema con arreglos, estructuras y funciones en: 20 Abril 2017, 03:26 am
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
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines