jueves, 26 de abril de 2012

Ejercicio con matrices y bucles en Lenguaje C

Caso Práctico

Tenemos guardada en una matriz los alumnos de una escuela. Sabiendo que hay 3 cursos distintos, 5 alumnos por curso y que cada alumno tiene 2 asignaturas, se pide:

1. Pedir por teclado las notas que ha sacado cada alumno en cada asignatura y de cada curso.

2. Decir cual es la nota media de un determinado curso.

3. Decir cuántos aprobados y suspensos hay en una determinada asignatura en un determinado curso.

int main()
{

float escuela[3][5][2];
int c,al,as,i,j,menu,asignatura,pos=0;
float media=0;
float aprobados=0;
float suspensos=0;

printf("PROGRAMA ESCUELA\n\n");
printf("================\n\n");

for(c=1;c<4;c++)
{
    printf("CURSO %d:\n",c);
        for(al=1;al<6;al++)
        {
            printf("    ALUMNO %d:\n",al);
                for(as=1;as<3;as++)
                {   
                    printf("        Introduce la nota de la Asignatura %d: ",as);
                    scanf("%f",&escuela[c-1]
[al-1][as-1]);                                        
                }

        }

}

printf("\n\n");

printf("De que curso quiere saber la nota media? [1,2,3]
");
scanf("%d",&menu);

switch (menu){

    case 1:
        for(i=0;i<5;i++)

                    {
                         for(j=0;j<2;j++)
          {
              media += escuela[0][i][j];
          }
        }
        printf("La nota media del Curso 1 es %.2f\n\n\n",media/10);

                  break;

    case 2:

               for(i=0;i<5;i++)
                    {
                         for(j=0;j<2;j++)
          {
              media += escuela[1][i][j];
          }
        }
        printf("La nota media del Curso 2 es %.2f\n\n\n",media/10);

                  break;
    case 3:
       
for(i=0;i<5;i++)
                    {
                         for(j=0;j<2;j++)
          {
              media += escuela[2][i][j];
          }
        }
        printf("La nota media del Curso 3 es %.2f\n\n\n",media/10);

                  break;
}

printf("Aprobados y Suspensos. Seleccione el Curso [1,2,3]");
scanf("%d",&menu);

switch (menu){

    case 1:
        printf("De que asignatura?[1,2]");
        scanf("%d",&asignatura);
        if(asignatura==1)
        {
            for(i=0;i<5;i++)
            {
                if(escuela[0][i][0]>=5)
                {
                    aprobados++;
                }
                else
                {
                    suspensos++;
                }
            }
            printf("En la Asignatura 1 del Curso 1 hay %.0f aprobados y %.0f suspensos\n\n",aprobados,suspensos);
        }
        else
        {
           
for(i=0;i<5;i++)
            {
                if(escuela[0][i][1]>=5)
                {
                    aprobados++;
                }
                else
                {
                    suspensos++;
                }

            }
            printf("En la Asignatura 2 del Curso 1 hay %.0f aprobados y %.0f suspensos\n\n",aprobados,suspensos);
        }
        break;

   
case 2:
        printf("De que asignatura?[1,2]");
        scanf("%d",&asignatura);
        if(asignatura==1)
        {
            for(i=0;i<5;i++)
            {
                if(escuela[1][i][0]>=5)
                {
                    aprobados++;
                }
                else
                {
                    suspensos++;
                }

            }
            printf("En la Asignatura 1 del Curso 2 hay %.0f aprobados y %.0f suspensos\n\n",aprobados,suspensos);
        }
        else
        {
           
for(i=0;i<5;i++)
            {
                if(escuela[1][i][1]>=5)
                {
                    aprobados++;
                }
                else
                {
                    suspensos++;
                }

            }
            printf("En la Asignatura 2 del Curso 2 hay %.0f aprobados y %.0f suspensos\n\n",aprobados,suspensos);
        }
        break;

   
case 3:
        printf("De que asignatura?[1,2]");
        scanf("%d",&asignatura);
        if(asignatura==1)
        {
            for(i=0;i<5;i++)
            {
                if(escuela[2][i][0]>=5)
                {
                    aprobados++;
                }
                else
                {
                    suspensos++;
                }

            }
            printf("En la Asignatura 1 del Curso 3 hay %.0f aprobados y %.0f suspensos\n\n",aprobados,suspensos);
        }
        else
        {
           
for(i=0;i<5;i++)
            {
                if(escuela[2][i][1]>=5)
                {
                    aprobados++;
                }
                else
                {
                    suspensos++;
                }

            }
            printf("En la Asignatura 2 del Curso 3 hay %.0f aprobados y %.0f suspensos\n\n",aprobados,suspensos);
        }
        break;
}

system("PAUSE");

}

2 comentarios: