关于C++结构体程序的问题

请大神们帮我看看这个程序到底在讲什么

 #include <iostream>
using namespace std;
struct DATA
{
    int a[2];
    int c;
    int max()
    {
        return a[0]>a[1]? a[0]:a[1];
    }
}data_a[5];

DATA data_b = {{15, 20}, 35};

int main()
{
    cout << data_b.max()<< endl;
    for(int i=0;i<5;++i)
    {
        cin >> data_a[i].a[0] >> data_a[i].a[1];
        data_a[i].c = data_a[i].a[0] + data_a[i].a[1];
    }
    for(int i=0;i<5;++i)
        cout << data_a[i].max() << " " << data_a[i].c << endl;
    return 0;
}

还有DATA data_b = {{15, 20}, 35};这个又是什么意思

#include <iostream> 
using namespace std;
struct DATA //定义了结构体DATA
{
    int a[2]; //成员变量数组a,用来存储两个整数
    int c; //成员变量c,用来存储a[0]+a[1]之和
    int max()//成员函数max,比较a[0]和a[1]大小,返回最大值
    {
        return a[0]>a[1]? a[0]:a[1];
    }
}data_a[5]; 声明了DATD的对象data_a

DATA data_b = {{15, 20}, 35}; //初始化,a[0]=15,a[1]=20,c=35

int main()
{
    cout << data_b.max()<< endl; //输出20
    for(int i=0;i<5;++i)
    {
        cin >> data_a[i].a[0] >> data_a[i].a[1];//从键盘输入a[0]和a[1]
        data_a[i].c = data_a[i].a[0] + data_a[i].a[1]; //计算c
    }
    for(int i=0;i<5;++i)
        cout << data_a[i].max() << " " << data_a[i].c << endl; //输出a[0]和a[1]中最大值和c
    return 0;
}

没有什么啊,都是简单地代码逻辑,后面的是前面数组元素之和,然后输出不就行了。。