Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/06/2011, 14:57
Bladsmickey
 
Fecha de Ingreso: enero-2011
Mensajes: 33
Antigüedad: 13 años, 10 meses
Puntos: 0
¿Problema C, Promedios y lista de alumnos?

Aqui tengo el siguiente ejercicio:


Código C:
Ver original
  1. #include <stdio.h>
  2. #include <windows.h>
  3. #define p printf
  4. #define s scanf

Código C:
Ver original
  1. struct datos{
  2. char temp1[25];
  3. char temp2[25];
  4. char temp3[25];
  5. int temp4;
  6. char nombre[25][100];
  7. char cedula[25][100];
  8. char telefono[25][100];
  9. int edad[25];
  10. int nota[25];
  11. int temp5;
  12. int salon1;
  13. int salon2;
  14. int salon3;
  15. int salon4;
  16. int prom1;
  17. int prom2;
  18. int prom3;
  19. int prom4;
  20. int promin = 100;
  21. int promax =-100;
  22. int suma;
  23. char nombresalon1[25][100];
  24. char nombresalon2[25][100];
  25. char nombresalon3[25][100];
  26. char nombresalon4[25][100];
  27. char cedulasalon1[25][100];
  28. char cedulasalon2[25][100];
  29. char cedulasalon3[25][100];
  30. char cedulasalon4[25][100];
  31. char telefonosalon1[25][100];
  32. char telefonosalon2[25][100];
  33. char telefonosalon3[25][100];
  34. char telefonosalon4[25][100];
  35. int edadsalon1[25];
  36. int edadsalon2[25];
  37. int edadsalon3[25];
  38. int edadsalon4[25];
  39. int notasalon1[25];
  40. int notasalon2[25];
  41. int notasalon3[25];
  42. int notasalon4[25];
  43. }d;

Código C:
Ver original
  1. void reordenar(){
  2. int i,j;
  3. for(i=0;i<d.salon1+d.salon2+d.salon3+d.salon4-1;i++){
  4. for(j=i+1 ; j<d.salon1+d.salon2+d.salon3+d.salon4 ; j++)
  5. if(strcmp(d.nombre[j],d.nombre[i]<0)){
  6. strcpy(d.temp1,d.nombre[j]);
  7. strcpy(d.nombre[j],d.nombre[i]);
  8. strcpy(d.nombre[i],d.temp1);
  9. strcpy(d.temp2,d.cedula[j]);
  10. strcpy(d.cedula[j],d.cedula[i]);
  11. strcpy(d.cedula[i],d.temp2);
  12. strcpy(d.temp3,d.telefono[j]);
  13. strcpy(d.telefono[j],d.telefono[i]);
  14. strcpy(d.telefono[i],d.temp3);
  15. d.temp4=d.edad[j];
  16. d.edad[j]=d.edad[i];
  17. d.edad[i]=d.temp4;
  18. d.temp5=d.nota[j];
  19. d.nota[j]=d.nota[i];
  20. d.nota[i]=d.temp5;}}}
Código C:
Ver original
  1. void buscar(){
  2. int i;
  3. for(i=0 ; i<d.salon1+d.salon2+d.salon3+d.salon4 ; i++){
  4. if(strcmp(d.buscar,d.nombre[i])==0){
  5. p("Datos Encontrados!\n");
  6. p("Organizando!\n");
  7. Sleep(2000);
  8. p("Nombre: %s\nCedula: %s\nTelefono: %s\n Edad: %d\n", d.nombre[i],d.cedula[i],d.telefono[i],d.edad[i]);
  9. }}}

main(){
int op,i;

Código C:
Ver original
  1. p("Cuantos Alumnos hay en la Primera Seccion: \n");
  2. s("%d", &d.salon1);
  3. for(i=0;i<d.salon1;i++){
  4. p("Intruduzca Nombre: \n");
  5. s("%s", &d.nombre[i]);
  6. strcpy(d.nombresalon1[i],d.nombre[i]);
  7. p("Introduzca Cedula: \n");
  8. s("%s", &d.cedula[i]);
  9. strcpy(d.cedulasalon1[i],d.cedula[i]);
  10. p("Introduzca Telefono: \n");
  11. s("%s", &d.telefono[i]);
  12. strcpy(d.telefonosalon1[i], d.telefono[i]);
  13. p("Introduzca Edad: \n");
  14. s("%d", &d.edad[i]);
  15. d.edadsalon1[i]=d.edad[i];
  16. p("Introduzca Nota: \n");
  17. s("%d", &d.nota[i]);
  18. d.notasalon1[i]=d.nota[i];
  19. d.suma+=d.nota[i];
  20. d.prom1=d.nota[i];
  21. if(d.nota[i]>d.promax){
  22. d.promax=d.nota[i];
  23. }
  24. if(d.nota[i]<d.promin){
  25. d.promin=d.nota[i];
  26. }
  27. }}

Código C:
Ver original
  1. p("Cuantos Alumnos hay en la Segunda Seccion: \n");
  2. s("%d",&d.salon2);
  3. for(i=0;i<d.salon2;i++){
  4. p("Intruduzca Nombre: \n");
  5. s("%s", &d.nombre[i+d.salon1]);
  6. strcpy(d.nombresalon2[i],d.nombre[i+d.salon1]);
  7. p("Introduzca Cedula: \n");
  8. s("%s", &d.cedula[i+d.salon1]);
  9. strcpy(d.cedulasalon2[i],d.cedula[i+d.salon1]);
  10. p("Introduzca Telefono: \n");
  11. s("%s", &d.telefono[i+d.salon1]);
  12. strcpy(d.telefonosalon2[i], d.telefono[i+d.salon1]);
  13. p("Introduzca Edad: \n");
  14. s("%d", &d.edad[i+d.salon1]);
  15. d.edadsalon2[i]=d.edad[i+d.salon1];
  16. p("Introduzca Nota: \n");
  17. s("%d", &d.nota[i+d.salon1]);
  18. d.notasalon2[i]=d.nota[i+d.salon1];
  19. d.suma+=d.nota[i+d.salon1];
  20. d.prom2+=d.nota[i+d.salon1];
  21. if(d.nota[i+d.salon1]>d.promax){
  22. d.promax=d.nota[i];}
  23. if(d.nota[i+d.salon1]<d.promin){
  24. d.promin=d.nota[i+d.salon1];
  25. }
  26. }}

Código C:
Ver original
  1. p("Cuantos Alumnos hay en la Tercera Seccion: \n");
  2. s("%d", &d.salon3);
  3. for(i=0;i<d.salon3;i++){
  4. p("Intruduzca Nombre: \n");
  5. s("%s", &d.nombre[i+d.salon1+d.salon2]);
  6. strcpy(d.nombresalon3[i],d.nombre[i+d.salon1+d.salon2]);
  7. p("Introduzca Cedula: \n");
  8. s("%s", &d.cedula[i+d.salon1+d.salon2]);
  9. strcpy(d.cedulasalon3[i],d.cedula[i+d.salon1+d.salon2]);
  10. p("Introduzca Telefono: \n");
  11. s("%s", &d.telefono[i+d.salon1+d.salon2]);
  12. strcpy(d.telefonosalon3[i], d.telefono[i+d.salon1+d.salon2]);
  13. p("Introduzca Edad: \n");
  14. s("%d", &d.edad[i+d.salon1+d.salon2]);
  15. d.edadsalon3[i]=d.edad[i+d.salon1+d.salon2];
  16. p("Introduzca Nota: \n");
  17. s("%d", &d.nota[i+d.salon1+d.salon2]);
  18. d.notasalon3[i]=d.nota[i+d.salon1+d.salon2];
  19. d.suma+=d.nota[i+d.salon1+d.salon2];
  20. d.prom3+=d.nota[i+d.salon1+d.salon2];
  21. if(d.nota[i+d.salon1+d.salon2]>d.promax){
  22. d.promax=d.nota[i+d.salon1+d.salon2];}
  23. if(d.nota[i+d.salon1+d.salon2]<d.promin){
  24. d.promin=d.nota[i+d.salon1+d.salon2];
  25. }}}
Código C:
Ver original
  1. p("Cuantos Alumnos hay en la Cuarta Seccion: \n");
  2. s("%d", &d.salon4);
  3. for(i=0;i<d.salon4;i++){
  4. p("Intruduzca Nombre: \n");
  5. s("%s", &d.nombre[i+d.salon1+d.salon2+d.salon3]);
  6. strcpy(d.nombresalon4[i],d.nombre[i+d.salon1+d.salon2+d.salon3]);
  7. p("Introduzca Cedula: \n");
  8. s("%s", &d.cedula[i+d.salon1+d.salon2+d.salon3]);
  9. strcpy(d.cedulasalon4[i],d.cedula[i+d.salon1+d.salon2+d.salon3]);
  10. p("Introduzca Telefono: \n");
  11. s("%s", &d.telefono[i+d.salon1+d.salon2+d.salon3]);
  12. strcpy(d.telefonosalon4[i],d.telefono[i+d.salon1+d.salon2+d.salon3]);
  13. p("Introduzca Edad: \n");
  14. s("%d", &d.edad[i+d.salon1+d.salon2+d.salon3]);
  15. d.edadsalon4[i]=d.edad[i+d.salon1+d.salon2+d.salon3];
  16. p("Introduzca Nota: \n");
  17. s("%d", &d.nota[i+d.salon1+d.salon2+d.salon3]);
  18. d.notasalon4[i]=d.nota[i+d.salon1+d.salon2+d.salon3];
  19. d.suma+=d.nota[i+d.salon1+d.salon2+d.salon3];
  20. d.prom4+=d.nota[i+d.salon1+d.salon2+d.salon3];
  21. if(d.nota[i+d.salon1+d.salon2+d.salon3]>d.promax){
  22. d.promax=d.nota[i+d.salon1+d.salon2+d.salon3];}
  23. if(d.nota[i+d.salon1+d.salon2+d.salon3]<d.promin){
  24. d.promin=d.nota[i+d.salon1+d.salon2+d.salon3];
  25. }}}

Lo dividi en partes para una mejor visualizacion, El programa Hace(O almenos quiero q haga) Pide los alumnos(Nombre, Cedula, Telefono, Edad y nota), los guarda, y Falta el menu que Dependiendo de la decision del Usuario, Mostrara una lista de Todos los alumnos, Realizara Una Busqueda o Reordenara los nombres, Ademas de mostrar el promedio acumulado.

El problema que presenta es que, Da error en la Estructura, Especificamente Nombresalon1, CedulaSalon1, edadsalon1.

Espero me Puedan ayudar Saludos!