Struct en C

#include <stdio.h>
#include <stdlib.h>

struct Tjugador{ 
 char nombre[50]; 
 int edad; 
 float altura;
};

int jugadormasalto(struct Tjugador *info, int tam);
int jugadormasviejo(struct Tjugador *info, int tam);

int main(int argc, char* argv[]){
 
 struct Tjugador *equipo;
 int numjugadores,i,masalto,masviejo;
 
 printf("Introduzca cuántos jugadores tiene el equipo\n");
 scanf("%d",&numjugadores);
 
 equipo=(struct Tjugador*)malloc(sizeof(struct Tjugador)*numjugadores);
 
 printf("Introduzca los datos de los jugadores:\n");
 for (i=0; i<numjugadores; i++) {
  printf("Introduzca el nombre del jugador %d: ", i);
  while(getchar()!='\n');
  fgets((equipo+i)->nombre,50,stdin);
//  while(getchar()!='\n');
  printf("Introduzca la edad del jugador %d: ", i);
  scanf("%d",&(equipo+i)->edad);
  printf("Introduzca la altura del jugador %d: ", i);
  scanf("%f",&(equipo+i)->altura);
 }
 masalto=jugadormasalto(equipo,numjugadores);
 masviejo=jugadormasviejo(equipo,numjugadores);

 printf("El jugador más alto es el jugador %d, se llama %s y mide %f\n",masalto+1,(equipo+masalto)->nombre,(equipo+masalto)->altura);
 printf("El jugador más viejo es el jugador %d, se llama %s y tiene %d años\n",masviejo+1,(equipo+masviejo)->nombre,(equipo+masviejo)->edad);
 return 0;
}

int jugadormasalto(struct Tjugador *info, int tam)
{
 int i,res; 
 res=0;
 for (i=1; i<tam; i++) {
  if ((info+i)->altura > (info+res)->altura) {
   res=i;
  }
 }
 
 return(res);
}
int jugadormasviejo(struct Tjugador *info, int tam)
{
 int i,res; 
 res=0;
 for (i=1; i<tam; i++) {
  if ((info+i)->edad > (info+res)->edad) {
   res=i;
  }
 }
 
 return(res);
}