WooKinson

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

解题思路:

1.先将可能的情况列出,根据分类确定计算的方式;

 

示例代码:

#include <stdio.h>
#define N 8

int main(void)
{
  int i = 0 , j = 0 , k = 0;
  double num[N] = {0} , tmp[N] = {0};
  double area = 0 , x = 0 , y = 0 ;

  for (i = 0 ; i < N ; i ++)
  {
    scanf("%lf",&num[i]);
    tmp[i] = num[i];
  }

  for (i = 0 ; i < N ; i += 2)
  {
    k = i;
    for (j = i+2 ; j < N ; j += 2)
    {
      if (num[k] > num[j])
      {
        k = j;
      }
    }
    if (k != i)
    {
      x = num[i] , y = num[i+1];
      num[i] = num[k] , num[i+1] = num[k+1];
      num[k] = x , num[k+1] = y;
    }
  }

  if    (num[2] == tmp[2] && num[4] == tmp[4] ||
    num[2] == tmp[6] && num[4] == tmp[0])
  {
    area = 0;
  }
  else
  {
    area = (num[2]-num[4])*(num[3]-num[5]);
  }

  if (area < 0)
  {
    area = -area;
  }
  printf("%.2f",area);

  return 0;
}

posted on 2018-01-19 15:41  WooKinson  阅读(212)  评论(0编辑  收藏  举报