Проблема со структурой C++

#include <iostream>
#include <cmath>

using namespace std;

struct tr
{
    int x;
    int y;
    int z;
    float n;
};

void init(tr, int n)
{
    float p; 
    for (int i = 0; i<n; i++)
    {
        p = (tr.x[i] + tr.y[i] + tr.z[i])/2;
        tr.n[i] = sqrt(p*(p - tr.x[i])*(p - tr.y[i])*(p - tr.z[i]));
    }
}
int sqr(tr, float n)
{
    int max = 0;
    for (int i = 0; i<n; i++)
    {
        if (tr.n[i] > max)
            max = tr.n[i];
    }
    return max;
}
int main()
{
    int n;
    cin >> n;
    tr triangle;
    init(triangle, n);
    cout << sqr(triangle, n);
}

Вот код, не понимаю что делать с этими ошибками.

1

2


Ответы (1 шт):

Автор решения: QQQ
struct tr
{
    int x;
    int y;
    int z;
    float n;
};

void init(tr* triangle, int n)
{
    float p; 
    for (int i = 0; i<n; i++)
    {
        p = (triangle[i].x + triangle[i].y + triangle[i].z)/2;
        triangle[i].n = sqrt(p*(p - triangle[i].x)*(p - triangle[i].y)*(p - triangle[i].z));
    }
}
int sqr(struct tr* triangle, int n)
{
    int max = 0;
    for (int i = 0; i<n; i++)
    {
        if (triangle[i].n > max)
            max = triangle[i].n;
    }
    return max;
}
int main()
{
    int n;
    cin >> n;
    tr triangle[n];
    init(triangle, n);
    cout << sqr(triangle, n);
}

Запустилась, вроде бы правильно...

→ Ссылка