pole czworokąta w układzie współrzędnych
Ostatnio zmodyfikowano 2022-03-03 15:54
Mariusz_99 Temat założony przez niniejszego użytkownika |
pole czworokąta w układzie współrzędnych » 2022-03-02 21:13:21 Witam! Piszę program mający wypisać pole wielokąta na podstawie współrzędnych jego boków, z precyzją do 0.5 jednostki. Punkt początkowy jest na 0,0. Niestety wychodzą złe wyniki. Proszę o pomoc. Oto mój kod: #include<iostream> #define pkt pair<long long, long long > using namespace std; long long pole;
long long i_w( pkt A, pkt B ) { int x1 = A.first, y1 = A.second, x2 = B.first, y2 = B.second; return x1 * y2 - x2 * y1; }
int main() { long long n; cin >> n; pkt A, B, X; cin >> A.first >> A.second; X.first = A.first; X.second = A.second; for( long long i = 1; i < n; i++ ) { cin >> B.first >> B.second; pole += i_w( A, B ); B.first = A.first; B.second = A.second; } pole += i_w( B, X ); if( pole < 0 ) pole = pole * - 1; if( pole % 2 == 0 ) cout << pole / 2; else cout << pole / 2 << ".5"; }
|
|
pekfos |
» 2022-03-03 15:54:42 B.first = A.first; B.second = A.second; |
|
« 1 » |