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

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con ciclo en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con ciclo en C  (Leído 1,805 veces)
Diego Perez

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Ayuda con ciclo en C
« en: 20 Mayo 2017, 06:43 am »

Buenas a todos soy nuevo en el aqui y en programación es mi primer cuatrimestre viendo algo de programación.No he tenido suerte de un grn preofe pero los libros me respaldan. Tengo un detalle con mi siguiente programa en realidad el programa es muchísimo mas largo pero quiero resolverlo en partes y me he atorado en esto. El programa debe dejarme introducir los datos de x alumnos como se muestra y si quiero salirme y volver a entrar y meter mas alumnos que me deje. No debo superar los 40 alumnos y el problema surge cuando imprimo datos en la primera ocasión pueden dar de alta los datos de 2 alumnos, por ejemplo, salirte al menu y mostrar los datos de esos dos. Pero si vuelvo a registrar otros dos, ahora al mostrar los datos solo me muestra los datos del ultimo usuario que haya registrado en cada una de esas dos veces que registre. Creo que mi error puede estar en como mando a imprimir los datos me gustaría un consejo de ustedes que son expertos en la materia. El progra es el siguiente no esta completo como dije solo es una parte para que chequen lo que pasa en el 1 grupo a registrar:


Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4.  
  5.  
  6.  
  7. struct datos
  8. {
  9. char nom[20],carr[10];
  10. int codigo;
  11. float p1,p2,par,tar;
  12.  
  13. };
  14.  
  15.  
  16. struct datos a[40];
  17.  
  18. main()
  19. {
  20.  
  21. float promedio,f;
  22. int oopc,opc,i=0,z,h,L=0,otro,j=0,m=0,p=1,kha=0;
  23.  
  24. do{
  25. printf("Selecciona un grupo \n1-Grupo 1\n2-Grupo 2\n3-Grupo 3");
  26. scanf("%d",&oopc);
  27. switch(oopc){
  28.  
  29. case 1:{
  30. do{
  31. printf("\nMenu Principal del Grupo 1\n");
  32. printf("Selecciona una opcion: \n1-Capturar datos \n2-Mostrar datos\n3-Ver el promedio de edades\n\n");
  33. scanf("%d",&opc);
  34.  
  35. switch(opc)
  36. {
  37. case 1:{
  38.  
  39. printf("Cuantos usuarios vas a registrar?");
  40. scanf("%d",&otro);
  41.  
  42. for(i=0;i<otro;i++){
  43. printf("\nNombre de la persona %d:\n",p);
  44. fflush(stdin);
  45. gets(a[i].nom);
  46. printf("\nCodigo escolar:\n");
  47. scanf("%d",&a[i].codigo);
  48. printf("\nCarrera:\n");
  49. fflush(stdin);
  50. gets(a[i].carr);
  51. printf("\nCuanto saco en su primer examen parcial:\n");
  52. scanf("%f",&a[i].p1);
  53. printf("\nCuanto saco en su segundo examen parcial:\n");
  54. scanf("%f",&a[i].p2);
  55. printf("Cuantas participaciones tuvo?");
  56. scanf("%f",&a[i].par);
  57. printf("Cuantas tareas tuvo?");
  58. scanf("%f",&a[i].tar);m++;p++;}
  59.  
  60. printf("Desea: \n1-Volver al menu\n2-Cerrar el programa");
  61. scanf("%d",&j);
  62.  
  63.  
  64. system("cls");
  65. L++;
  66. break;
  67. }
  68.  
  69.  
  70. case 2:{
  71. if(L!=0){
  72.  
  73. for(i=0;i<m;i++){
  74. printf("\nNombre: %s\nCodigo: %d\nCarrera: %s\nExamen parcial 1: %f\nExamen parcial 2: %f \nPartcicipaciones: %f \nTareas: %f",a[i].nom,a[i].codigo,a[i].carr,a[i].p1,a[i].p2,a[i].par,a[i].tar);
  75.  
  76.  
  77.  
  78. }
  79.  
  80. printf("\nDesea: \n1-volver al menu\n2-Cerrar programa");
  81. scanf("%d",&j);}
  82.  
  83. if(L==0)
  84. { printf("No ha ingresado datos");
  85. printf("\nDesea: \n1-volver al menu\n2-Cerrar programa");
  86. scanf("%d",&j);}
  87.  
  88.  
  89.  
  90.  
  91. system("cls");
  92. break;
  93. }
  94. }
  95. }
  96. while(j==1);
  97. }
  98. }
  99. }
  100. while(z==1);
  101. }


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


« Última modificación: 20 Mayo 2017, 18:15 pm por engel lex » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Ayuda con ciclo en C
« Respuesta #1 en: 20 Mayo 2017, 18:18 pm »

siempre registras usuarios desde la posición 0, deberías usar un contador con los usuarios ingresados para saber donde agregar uno nuevo


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Ayuda]Ciclo Foreach PHP
PHP
rolly21102 4 5,020 Último mensaje 16 Junio 2010, 03:05 am
por bomba1990
Ayuda con un ciclo
Java
xAgramonx 3 3,374 Último mensaje 25 Noviembre 2010, 19:30 pm
por xAgramonx
Ayuda con ciclo for C++ « 1 2 »
Programación C/C++
andrex.125 12 5,649 Último mensaje 11 Mayo 2013, 07:38 am
por andrex.125
ayuda con ciclo while!
Programación C/C++
el1000erroresxd 3 3,114 Último mensaje 5 Junio 2016, 03:37 am
por AlbertoBSD
ayuda con ciclo for
Programación C/C++
jorpoke 1 1,735 Último mensaje 3 Marzo 2018, 03:40 am
por Kenji-chan
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines