¿Hay diferencias entre compilar en dev c++ y vs code con Mingw?

Estoy aprendiendo a programar y usaba dev c++ hasta hace poco, me cambié a vs code hace poco puesto que escuché que te ayuda a entender mejor los errores que estas cometiendo, pero, encontré que la lógica que utilicé en dev c++ para encontrar el dato mayor dentro de un arreglo de números no me estaba funcionando. El programa consiste en la recolección de datos de tres alumnos e imprimir los datos del alumno con mayor promedio. Este es el código:

#include <iostream>
#include <conio.h>
using namespace std;

struct alumno
{
char name(30);
int age;
float p;
}alu(3);

int main()
{
    int may;
    
    for (int i=0; i<3;i++)
    {
        cout<<"Nombre: ";cin.getline(alu(i).name,30,'n');
        cout<<"Edad: ";cin>>alu(i).age;
        cin.ignore();
        cout<<"Promedio: ";cin>>alu(i).p;
        cin.ignore();
    }
    for(int i=0;i<3;i++)
    {
        may=i;
        for(int j=i+1;j<3;j++)
        {
            if(alu(may).p<alu(j).p)
            {
                may=j;
            }
        }
    }
    cout<<"ntEl alumno con mejor promedio es:   ";
    cout<<"nNombre: "<<alu(may).name;
    cout<<"nEdad: "<<alu(may).age;
    cout<<"nPromedio: "<<alu(may).p;
    
    getch();
    return 0;
}

en dev c++ lo que pasaba era que me imprimía los datos con el alumno de mayor promedio, lo que pasa ahora en vs code es que me imprime los datos del último alumno que ingrese. ¿Alguien tiene idea de que pueda estar ocurriendo?