Buenas tardes a todos , espero que estén muy bien.
Enunciado del problema: Hacer una estructura llamada alumno, en la cual se tendrán los siguientes miembros: Nombre, edad, promedio, pedir datos al usuario para 3 alumnos, comprobar cuál de los 3 tiene el mejor promedio y posteriormente imprimir los datos del alumno.
Tengo el problema en la impresión de los datos de la persona con mejor promedio.
¿esta bien utilizado el puntero? de no ser así, ¿ como se utiliza correctamente el puntero a estructura para llevarlo a una función?
lo que quería hacer en la función promedio es llevar todo el arreglo a la función( es un arreglo de estructuras)
Llevo mucho tiempo averiguando cual es el error, si me ayudan seria fantástico.
gracias de antemano
#include <stdio.h>
typedef struct alumnos
{
char nombre[20];
int edad;
int promedio;
}alumno;
void datos();
void promedio();
int main()
{
alumno arr[3];
datos(arr[0]);
datos(arr[1]);
datos(arr[2]);
promedio(arr);
return 0;
}
void datos(alumno x)// se rellenan los datos en cada estructura
{
printf("\nNombre alumno:");
scanf("%s",&x.nombre);
printf("\nEdad:");
scanf("%d",&x.edad);
printf("\nPromedio:");
scanf("%d",&x.promedio);
}
void promedio(alumno* arr)
{
int i,pos,max=0;
for(i=0;i<3;i++)// se compara el promedio de cada alumno
{
if(max<arr.promedio)
max=arr.promedio;
pos=i;// se guarda la posición del alumno con el mejor promedio
}
printf("\nEl alumno con la mejor nota es: \n");
printf("\nNombre: %s",arr[pos].nombre);
printf("\nEdad: %d",arr[pos].edad);
printf("\nPromedio: %d\n\n",arr[pos].promedio);
}