请问这个程序的错误怎么改,并且怎么输出数学和英语最高分的学生

#include
using namespace std;
void main()
{
struct student {
int num;
char sex;
float math;
float English;
};
student s1, s2, s3, s4, s5;
s1 = { 1,'F',96,85 };
s2 = { 2,'F',58,80 };
s3 = { 3,'M',89,92 };
s4 = { 4,'F',94,60 };
s5 = { 5,'M',95,99 };
{
int i;
student st, stmax, stmin;
for (i = 0; i < 5; i++)
{
cout << "enter data:";
cin >> st.num >> st.sex >> st.math >> st.English;
if (st.math > stmax.math && st.English > stmax.English)
{
stmax.num = st.num;
stmax.sex = st.sex;
stmax.English = st.English;
stmax.math = st.math;
}
}
cout << "\n" << "max=" << stmax.num << stmax.math << stmax.English;
}
}