Hej wszystkim, muszę obliczyć pole oraz obwód wielokąta wypukłego
Napisałem taki kod lecz nie działa on poprawnie, mogę prosić o pomoc ?
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
double polew(double x[], double y[], int n)
{
double pole = 0.0;
int j = n - 1;
for (int i = 0; i < n; i++)
{
pole += (x[j] + x[i]) * (y[j] - y[i]);
j = i;
}
return abs(pole / 2.0);
}
double obwod(double x[], double y[], int n)
{
double obwod = 0.0;
int j = n - 1;
for (int i = 0; i < n; i++)
{
obwod += ((x[j] - x[i]) + (y[j] - y[i]));
j = i;
}
return abs(obwod / 2.0);
}
int main()
{
int N,i;
double x[10];
double y[10];
cin >> N;
for(i=0;i<N;i++)
{
cin >> x[i]>>y[i];
}
N = sizeof(x) / sizeof(y[0]);
cout << "Pole wielokata wynosi: " <<showpoint << setprecision(3)<< polew(x, y, N) << endl;
cout << "Obwod wielokata wynosi: "<< obwod(x, y, N);
return 0;
}