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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Sobre aprobado y suspenso
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Sobre aprobado y suspenso  (Leído 1,621 veces)
droken26

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Sobre aprobado y suspenso
« en: 16 Marzo 2015, 22:57 pm »

Muy buenas, estoy peleandome con el codigo  pero algo debo hacer mal puesto que el total de suspendido y aprobados no me lo calcula bien, y tambien me da un error en la condicion do..while por eso la tengo anulada como si fuera un comentario.
Os dejo el codigo a ver si puedes darme algo de luz.

Saludos y gracias a los que estais ahi para ayudarnos a los que empezamos.

Código
  1.    #include <stdio.h>
  2.    #include <stdlib.h>
  3.    #define  ALUMNOS 10
  4.    #define  PRUEBAS  4
  5.  
  6.    int main()
  7.    {
  8.  
  9.  
  10.    int a,b,i,j;
  11.    int nota=0;
  12.    int prueba = 1,alumno = 1;
  13.    int aprobados=0;
  14.    int suspensos=0;
  15.    float A[ALUMNOS][PRUEBAS];
  16.  
  17.           printf("Calculo aprobados y suspensos:\n");
  18.  
  19.           //do {
  20.           for(i=0; i<PRUEBAS; i++){
  21.               printf("\nNumero de Prueba %d: \n", prueba++);
  22.               for(j=0;j<ALUMNOS; j++){
  23.                   printf("Calificacion del Alumno %d:", alumno++);
  24.                   scanf("%f", &A[i][j]);
  25.                   //if(nota!=-1)
  26.  
  27.                if(nota>=5)
  28.                   aprobados++;
  29.                 else suspensos++;
  30.                alumno = 1;
  31.    }
  32.                } //while (nota!=-1);
  33.  
  34.        printf("\nNOTAS DE LOS ALUMNOS");
  35.        printf("\nAlumnos aprobados ...............: %d",aprobados);
  36.        printf("\nAlumnos suspendidos .............: %d\n",suspensos);
  37.  
  38.         return 0;
  39.     }
  40.  
  41.  


En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Sobre aprobado y suspenso
« Respuesta #1 en: 17 Marzo 2015, 02:12 am »

Los errores principales son dos. El primero son los indices utilizados para acceder al array de arrays:
Código
  1. for (i = 0; i < PRUEBAS; i++) { /* i == 0 .. 3 */
  2.   printf ("\nNumero de Prueba %d: \n", prueba++);
  3.   for (j = 0; j < ALUMNOS; j++) { /* j == 0 .. 9 */
  4.      printf ("Calificacion del Alumno %d:", alumno++);
  5.      scanf ("%f", &A[i][j]);
Están al revés, "i" debe iterar desde 0 hasta ALUMNOS y "j" desde 0 hasta PRUEBAS. Lo que lleva a que estas procesando cada uno de los alumnos (contador "i") del cual pides cada una de las notas (contador "j").

El otro error se debe al uso de la variable "nota":
Código
  1. int nota = 0;
  2.  
  3. /* ... */
  4.  
  5. printf ("Calificacion del Alumno %d:", alumno++);
  6. scanf ("%f", &A[i][j]);
  7.  
  8. if (nota >= 5)
  9.   aprobados++;
  10. else
  11.   suspensos++;
  12. alumno = 1;
A esa variable le das un valor inicial de cero y después de ello nunca la modificas. La variable que debes verificar para conocer si el alumno aprobó o no la materia es "A[ i ][ j ]":
Código
  1. if (A[i][j] >= 5)
  2.   aprobados++;
  3. else
  4.   suspensos++;

Un saludo


En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
droken26

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Re: Sobre aprobado y suspenso
« Respuesta #2 en: 17 Marzo 2015, 11:28 am »

Muchas gracias, he realizado los cambios y perfecto. Ahora el único problema es que me suma los aprobados y suspensos de firma seguida, cuando debería ser por bloques de asignaturas/alumnos.

Un saludo
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Una discoteca de Alicante regala copas por cada suspenso
Noticias
wolfbcn 0 1,440 Último mensaje 21 Junio 2013, 02:06 am
por wolfbcn
Aprobado el estándar G.Fast que dará 1 Gbps sobre ADSL
Noticias
wolfbcn 0 3,865 Último mensaje 9 Diciembre 2014, 21:58 pm
por wolfbcn
Aprobado el estándar final del 5G SA: el 5G “real”
Noticias
wolfbcn 0 991 Último mensaje 14 Junio 2018, 14:10 pm
por wolfbcn
Los alumnos de Bachillerato podrán obtener el título con un suspenso « 1 2 »
Foro Libre
wolfbcn 14 3,506 Último mensaje 15 Noviembre 2018, 09:49 am
por buite
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines