Hey people this is my first question on this page. I have been learning C in university and I have to complete an activity where I insert name, surname and 4 grades, of 3 different students. After that I must calculate average grade, maximum and minimum grade, and print those results on screen.
The program compiles correctly without errors, but when the results are printed, the program says that average grade, maximum and minimum grade are all equal to 0.000000.
I really don't know what the problem is and I would apreciate if anyone could check it out and help me in any way.
(Sorry if you don't understand the variable names, I'm from Argentina and they are in Spanish)
#include <stdio.h>
#define N 50
struct alumno
{
char nombre [N];
char apellido [N];
float nota1;
float nota2;
float nota3;
float nota4;
} alumno1, alumno2, alumno3;
struct notas
{
float prom;
float nmax;
float nmin;
} notas1, notas2, notas3;
float promedio (struct alumno a, struct notas b)
{
b.prom = (a.nota1 + a.nota2 + a.nota3 + a.nota4)/4;
return b.prom;
};
float notamaxima (struct alumno a, struct notas b)
{
if ((a.nota1>a.nota2) && (a.nota1>a.nota3) && (a.nota4>a.nota4))
{
b.nmax=a.nota1;
}
else if ((a.nota2>a.nota1) && (a.nota2>a.nota3) &&
(a.nota2>a.nota4))
{
b.nmax=a.nota2;
}
else if ((a.nota3>a.nota1) && (a.nota3>a.nota2) &&
(a.nota3>a.nota4))
{
b.nmax=a.nota3;
}
else if ((a.nota4>a.nota1) && (a.nota4>a.nota2) &&
(a.nota4>a.nota3))
{
b.nmax=a.nota4;
}
return 0;
};
float notaminima (struct alumno a, struct notas b)
{
if ((a.nota1<a.nota2) && (a.nota1<a.nota3) && (a.nota1<a.nota4))
{
b.nmin=a.nota1;
}
else if ((a.nota2<a.nota1) && (a.nota2<a.nota3) &&
(a.nota2<a.nota4))
{
b.nmin=a.nota2;
}
else if ((a.nota3<a.nota1) && (a.nota3<a.nota2) &&
(a.nota3<a.nota4))
{
b.nmin=a.nota3;
}
else if ((a.nota4<a.nota1) && (a.nota4<a.nota2) &&
(a.nota4<a.nota3))
{
b.nmin=a.nota4;
}
return 0;
};
int main ()
{
struct alumno;
struct notas;
printf ("Ingrese nombre del alumno:\n");
fgets (alumno1.nombre, N, stdin);
printf ("Ingrese apellido del alumno:\n");
fgets (alumno1.apellido, N, stdin);
printf ("Ingrese la primera nota del alumno:\n");
scanf ("%f", &alumno1.nota1);
printf ("Ingrese la segunda nota del alumno:\n");
scanf ("%f", &alumno1.nota2);
printf ("Ingrese la tercera nota del alumno:\n");
scanf ("%f", &alumno1.nota3);
printf ("Ingrese la cuarta nota del alumno:\n");
scanf ("%f", &alumno1.nota4);
promedio (alumno1, notas1);
notamaxima (alumno1, notas1);
notaminima (alumno1, notas1);
printf ("El promedio del primer alumno es %f\n", notas1.prom);
printf ("La nota maxima del primer alumno es %f\n", notas1.nmax);
printf ("La nota minima del primer alumno es %f\n", notas1.nmin);
printf ("Ingrese nombre del alumno:\n");
fgets (alumno1.nombre, N, stdin);
printf ("Ingrese apellido del alumno:\n");
fgets (alumno1.apellido, N, stdin);
printf ("Ingrese la primera nota del alumno:\n");
scanf ("%f", &alumno2.nota1);
printf ("Ingrese la segunda nota del alumno:\n");
scanf ("%f", &alumno2.nota2);
printf ("Ingrese la tercera nota del alumno:\n");
scanf ("%f", &alumno2.nota3);
printf ("Ingrese la cuarta nota del alumno:\n");
scanf ("%f", &alumno2.nota4);
promedio (alumno2, notas2);
notamaxima (alumno2, notas2);
notaminima (alumno2, notas2);
printf ("El promedio del segundo alumno es %f\n", notas2.prom);
printf ("La nota maxima del segundo alumno es %f\n", notas2.nmax);
printf ("La nota minima del segundo alumno es %f\n", notas2.nmin);
printf ("Ingrese nombre del alumno:\n");
fgets (alumno1.nombre, N, stdin);
printf ("Ingrese apellido del alumno:\n");
fgets (alumno1.apellido, N, stdin);
printf ("Ingrese la primera nota del alumno:\n");
scanf ("%f", &alumno3.nota1);
printf ("Ingrese la segunda nota del alumno:\n");
scanf ("%f", &alumno3.nota2);
printf ("Ingrese la tercera nota del alumno:\n");
scanf ("%f", &alumno3.nota3);
printf ("Ingrese la cuarta nota del alumno:\n");
scanf ("%f", &alumno3.nota4);
promedio (alumno3, notas3);
notamaxima (alumno3, notas3);
notaminima (alumno3, notas3);
printf ("El promedio del tercer alumno es %f\n", notas3.prom);
printf ("La nota maxima del tercer alumno es %f\n", notas3.nmax);
printf ("La nota minima del tercer alumno es %f\n", notas3.nmin);
return 0;
}