Pagini recente » Cod sursa (job #521513) | Cod sursa (job #1291160) | Cod sursa (job #2867024) | Cod sursa (job #505056) | Cod sursa (job #2332698)
#include <stdio.h>
#include <stdlib.h>
double area(double x1, double y1, double x2, double y2) {
double result = (x1 * y2 - x2 * y1);
return result;
}
int main() {
FILE *in, *out;
if (((in = fopen("aria.in", "rt")) == NULL)) {
printf("Nu am putut deschide fisierul de input!");
return -1;
}
if (((out = fopen("aria.out", "wt")) == NULL)) {
printf("Nu am putut deschide fisierul de output!");
return -2;
}
int n, check = 0;
double x1 = 0, y1 = 0, x2, y2;
double first_x, first_y;
double arie = 0;
fscanf(in, "%d", &n);
for (int i = 0 ; i < n ; ++i) {
fscanf(in, "%lf %lf", &x2, &y2);
if (!check) {
first_x = x2;
first_y = y2;
check = 1;
}
arie += area(x1, y1, x2, y2);
x1 = x2;
y1 = y2;
}
arie += area(x2, y2, first_x, first_y);
arie /= 2.0;
fprintf(out, "%0.6lf\n", arie);
// Freeing the memory
fclose(in);
fclose(out);
return 0;
}