关于C++求数组的最大值最小值的问题

请大家帮我看看我这个代码的问题在哪里,求数组的最大最小值,运行结果最大值时正确的,但最小值的输出结果都是0

#include <iostream>
using namespace std;
int main()
{
    int S1[5] , S2[5] , S3[5] ;//定义成绩数组
    int i  ,Sum[5],Ava[5],max1=S1[0] ,max2=S2[0]  ,max3=S3[0]  ,min1=S1[0] ,min2=S2[0] ,min3=S3[0];
    for (i = 0; i < 5; i++)
    {
        cout << "请输入第" << i + 1 << "位同学的三门成绩"<<endl;
        cin >> S1[i]>>S2[i]>>S3[i];
        cout << endl;
    }
    for (i = 0; i < 5; i++)
    {
        Sum[i] = S1[i] + S2[i] + S3[i];
        Ava[i] = Sum[i] / 3;
         
        
        cout << "第" << i + 1 << "位同学的平均分为" << Ava[i] << endl;
    }
    for (i = 0; i <= 4; i++)
    {
        if (S1[i] > max1)
        {
            max1 = S1[i];
        }
        if (S1[i] < min1)
        {
            min1 = S1[i];
        }
    }
    for (i = 0; i <= 4; i++)
    {
        if (S2[i] > max2)
        {
            max2 = S2[i];
        }
        if (S2[i] < min2)
        {
            min2 = S2[i];
        }
    }
    for (i = 0; i <= 4; i++)
    {
        if (S3[i] > max3)
        {
            max3 = S3[i];
        }
        if (S3[i] < min3)
        {
            min3 = S3[i];
        }
    }
     
 
            cout << "第一门成绩最高分为" << max1 << "最低分为" <<min1 <<endl;
        cout << "第二门成绩最高分为" << max2 << "最低分为"<<min2  <<endl;
        cout << "第三门成绩最高分为" << max3 << "最低分为" <<min3  << endl;
        cout << endl;
    
        return 0;
     
}