[Explicaciones] -hdu 2036

brisa de primavera la reforma de Montreal

título Descripción

"Brisa de primavera de la reforma sobre el suelo,
no CA no importa;
no se trata de volver a casa,
así como la tercera parte de un acre.
Gracias (banda de reproducción de música)!"

Algunos estudiantes dicen excelente estado de ánimo, que conocen el juego todos los días, por lo que el examen tema sencillo, sino también de niebla, sino que también resultaron ser tan pocas rimas.
De acuerdo, la responsabilidad del maestro es ayudar a resolver el problema, ya que le gustaría a la granja, lo que señala una.
Este campo se encuentra en el condado de Cangnan de la ciudad de Wenzhou, provincia de Zhejiang pueblo Lingxi Linjiapuzi, pieza en forma de polígono de la tierra, originalmente Linle ya está listo para darle. Sin embargo, no todo es tan sencillo, primero debe decirme qué parte de la superficie terrestre, al final, si se responde correctamente con el fin de conseguir realmente la tierra.
Preocuparse, ¿verdad? Es a saber, la agricultura es también un conocimiento necesidad de CA! Después de que era una buena práctica ...

Entrada

Los datos de entrada comprenden una pluralidad de casos de prueba, una fila para cada caso de prueba, el comienzo de cada línea es un número entero n (3 <= n <= 100), que representa el número de polígono (por supuesto, el número de vértices) del borde, a continuación, a la inversa las agujas del reloj en el orden dado las n coordenadas de los vértices (x1, y1, x2, y2 ... xn, yn), con el fin de simplificar el problema, en donde todas las coordenadas están representados por entero.
Los datos de entrada son todos los números enteros en el rango de enteros de 32 bits, n = 0 indica el final de los datos sin procesar.

Salida

Para cada caso de prueba, la salida de un área del polígono correspondiente al resultado de un lugar decimal decimal.
La salida de cada ejemplo por línea.

Ejemplo de entrada

3 0 0 1 0 0 1
4 1 0 0 1 -1 0 0 -1
0

Ejemplo de salida

0,5
2,0

La resolución de problemas antes de que primer vistazo a la fórmula del área del polígono
Aquí Insertar imagen Descripción
área del polígono se encuentra junto a uno de los dos temas transversales, se multiplican y la mitad!
código AC

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int n, a[105] = {0}, b[105] = {0};
    double ans;
    while(~scanf("%d", &n))//多组输入
    {
        if(n == 0) break;
        ans = 0;//初始化ans
        for(int i = 0; i < n; i++)
        {
            scanf("%d%d", &a[i], &b[i]);
        }
        a[n] = a[0];//在循环中将最后一个点与第一个点做叉乘
        b[n] = b[0];//在循环中将最后一个点与第一个点做叉乘
        for(int i = 0; i < n; i++)
        {
            ans += abs(a[i]*b[i+1] - a[i+1]*b[i]);//求叉乘和
        }
        printf("%.1f\n", ans/2);
    }
    return 0;
}

Publicado 20 artículos originales · ganado elogios 2 · Vistas 944

Supongo que te gusta

Origin blog.csdn.net/zhbbbbbb/article/details/103439707
Recomendado
Clasificación