Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] Error sumas suspensos y aprobados

Estas en el tema de Error sumas suspensos y aprobados en el foro de C/C++ en Foros del Web. Muy buenas, estoy un poco desesperado porque no encuentro el error, seguro que es una tonteria. El programa trata de sumar los suspensos y aprobados ...
  #1 (permalink)  
Antiguo 18/03/2015, 02:31
 
Fecha de Ingreso: agosto-2007
Mensajes: 12
Antigüedad: 17 años, 3 meses
Puntos: 0
Error sumas suspensos y aprobados

Muy buenas, estoy un poco desesperado porque no encuentro el error, seguro que es una tonteria.
El programa trata de sumar los suspensos y aprobados de una clase de 10 en 4 asignaturas

Tengo dos problemas:
1.- La recogida de datos empieza con el alumno 1, asignatura 1, posteriormente asignatura 2 pero me mantiene el alumno 1, cuando deberia poner alumno 2.

2.- Una vez introducida las calificaciones, la primera asignatura me suma los suspensos y aprobados, pero los sucesivos lo que hace es sumar los anteriores no me contabiliza los suspensos ya aprobados de la segunda asignatura y asi sucesivamente.
Ruego un cable.

Os dejo el codigo.

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define max_alumnos 10
  4. #define max_pruebas 4
  5. //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  6. int main()
  7. {
  8.  
  9. float notas[4][10];
  10. float nota[max_alumnos];
  11. float A[max_alumnos][max_pruebas];
  12. int prueba = 1,alumno = 1;
  13. int a,b,i,j,opc;
  14. int aprobados=0;
  15. int suspensos=0;
  16.  
  17.  
  18.  
  19. printf("Calculo aprobados y suspensos:\n");
  20.       for(a=0; a<max_pruebas; a++){
  21.           printf("\nNumero de Prueba %d: \n", prueba++);
  22.           for(b=0;b<max_alumnos;b++){
  23.               printf("Calificacion del Alumno %d:", alumno++);
  24.               scanf("%f", &A[a][b]);
  25.              alumno = 1;
  26.            {
  27.            if (A[a][b]>=5)
  28.               aprobados++;
  29.               else
  30.               suspensos++;
  31.              }
  32. }
  33.    printf("\nNOTAS DE LOS ALUMNOS");
  34.    printf("\nAlumnos aprobados ...............: %d",aprobados);
  35.    printf("\nAlumnos suspendidos .............: %d\n",suspensos);
  36.  
  37.     }
  38.  
  39.     system("pause");
  40. return 0;
  41. }
  #2 (permalink)  
Antiguo 18/03/2015, 02:41
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 10 años, 1 mes
Puntos: 204
Respuesta: Error sumas suspensos y aprobados

Cita:
Iniciado por droken26 Ver Mensaje
1.- La recogida de datos empieza con el alumno 1, asignatura 1, posteriormente asignatura 2 pero me mantiene el alumno 1, cuando deberia poner alumno 2.
Código C++:
Ver original
  1. for(b=0;b<max_alumnos;b++){
  2.               printf("Calificacion del Alumno %d:", alumno++); // <<<-- incrementas alumno
  3.               scanf("%f", &A[a][b]);
  4.              alumno = 1; // <<<-- te cargas el valor anterior y haces que alumno valga 1

PD.: sería conveniente que empezases a trastear con los depuradores de código. Son extremadamente útiles e imprescindibles a la hora de desarrollar aplicaciones.

Cita:
Iniciado por droken26 Ver Mensaje
2.- Una vez introducida las calificaciones, la primera asignatura me suma los suspensos y aprobados, pero los sucesivos lo que hace es sumar los anteriores no me contabiliza los suspensos ya aprobados de la segunda asignatura y asi sucesivamente.
Esto no me ha quedado claro. A ver, el total de aprobados y suspensos está fuera de los bucles, luego únicamente se van a mostrar una vez. Esto es independiente de la cantidad de asignaturas que tengas.

Si lo que quieres es que muestre el número de aprobados y suspensos para cada asignatura tienes que meter esos printf dentro del bucle y, además, resetear las variables "aprobados" y "suspensos" cada vez que cambias de asignatura.

Un saludo.

Última edición por eferion; 18/03/2015 a las 02:46
  #3 (permalink)  
Antiguo 18/03/2015, 10:25
 
Fecha de Ingreso: febrero-2015
Mensajes: 404
Antigüedad: 9 años, 8 meses
Puntos: 3
Respuesta: Error sumas suspensos y aprobados

creo que no lo tiene claro ni el ¿Que logica tiene recorrer ese array de forma escalonada? ¿Que pasa con los que no escribes? ¿No te sirvio el codigo que te puse en el otro post?
  #4 (permalink)  
Antiguo 18/03/2015, 10:56
 
Fecha de Ingreso: agosto-2007
Mensajes: 12
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: Error sumas suspensos y aprobados

Por supuesto que me sirvió y gracias a el he podido sacarlo. Por fin he conseguido solucionarlo.
Muchas gracias por vuestra paciencia.
Un saludo

Etiquetas: int, numero, sumas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:40.