Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: NelsonR en 25 Julio 2021, 06:24 AM

Título: [ AYUDA ] Calcular el indice acumulado de un estudiante en .C
Publicado por: NelsonR en 25 Julio 2021, 06:24 AM
Buenas soy nuevo en el foro no se como son los debidos procedimientos para publicar pero vengo pidiendo ayuda, necesito hacer lo que dice el titulo ya he durado 2 días atorado en esto y no se que hacer.

Tengo esto:
float calcular_indiceacumulado(int cantidad, int nota[])
{
   float indiceacumulado =0;
   int i;
   for (i = 0; i < cantidad; i++)
   {
       indiceacumulado += nota[i];
   }
   return (indiceacumulado/i);
}

printf("Cuantos cuatrimestres curso el estudiante #%d: ", i + 1);
       scanf("%d", &estudiante.cuatrimestre);
       for (int o = 0; o < estudiante.cuatrimestre; ++o)
       {
           printf("Materias cursadas durante el cuatrimestre #%d del estudiante: #%d: ", o + 1, i + 1);
           scanf("%d", &estudiante.matcursadas);
           printf("\n------------INTRODUZCA LAS %d NOTAS------------\n\n", estudiante.matcursadas);

           for (int i = 0; i < estudiante.matcursadas; ++i)
           {
               printf("Nota %d: ", i + 1);
               scanf("%d", &estudiante.notas[i]);
           }
           estudiante.indice= calcular_indice(estudiante.matcursadas, estudiante.notas);
           printf("\nSu indice del cuatrimestre es %.2f con el estudiante #%d\n", estudiante.indice, i + 1);


Yo necesito hacer el indice acumulado de todos los cuatrimestre que agregue el usuario, no entiendo como, estoy frisado, cualquier ayuda me vendría muy bien, se lo agradecería de corazón.

MOD: Agregado resaltado de sintaxis C a las etiquetas de código.
Título: Re: [ AYUDA ] Calcular el indice acumulado de un estudiante en .C
Publicado por: K-YreX en 25 Julio 2021, 14:05 PM
Tienes un problema con la definición de la estructura y es que estás sobreescribiendo datos. Si en la primera iteración dices que cursa 4 materias, en la segunda vuelta dices 5 y vas a sobreescribir el 4 anterior por el 5.

A simple vista tienes 2 opciones sin crear más estructuras. De más simple/rápida a más correcta/profesional serían:
Título: Re: [ AYUDA ] Calcular el indice acumulado de un estudiante en .C
Publicado por: NelsonR en 25 Julio 2021, 18:09 PM
Muchísimas gracias! me haz salvado la vida!, me sirvió mucho, una ultima consulta, como seria para llamar los 2 float?

Lo puse asi.

float calcularMediaCompleta(Estudiante estudiante) {
    int valor1, valor2;
  float sumaNotasCuatrimestres = 0;
  for(int i = 0; i < estudiante.num_cuatrimestres; ++i)
    sumaNotasCuatrimestres += calcularMediaCuatrimestre(valor1, valor2);
  return sumaNotasCuatrimestres / estudiante.num_cuatrimestres;
}
float calcularMediaCuatrimestre(int cantidad, int nota[])
{
    float indice =0;
    int i;
    for (i = 0; i < cantidad; i++)
    {
        indice += nota[i];
    }
    return (indice/i);
}
Título: Re: [ AYUDA ] Calcular el indice acumulado de un estudiante en .C
Publicado por: K-YreX en 28 Julio 2021, 21:51 PM
No entiendo la función de valor1 y valor2.
Deberías repasar bien las funciones y parámetros en C pues si no tienes eso claro, no sirve de nada intentar avanzar a duras penas.

Tampoco entiendo por qué has cambiado los parámetros de la segunda función.