标签:des style blog http io ar os sp for
给你一个多边形(用’\’和’/’表示多边形的边),求多边形的面积。

4 4 /\/\../ .\...\/
8
/\/\   // 对于该行第一字符就是‘/’,说明这是左边,第四个字符‘\’是右边, 该行的面积是:半个+半个+半个+半个
\../   // 该行的面积是:半个+1个+1个+半个
.\.\   // 该行的面积是:0 + 半个+1个+半个 
..\/   // 该行的面积是:0 + 0 +半个+半个
 
         (4)最后边个的总数别忘了除2 !
  
   代码如下:
#include <iostream>
#include <string>
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
char map[200][200];
int main()
{
    int n, m;
    int i, j, k;
    int dd;
    int bn, zh, area;
    while(scanf("%d %d", &n, &m)!=EOF)
    {
        for(i=0; i<n; i++)
        {
            scanf("%s", map[i] );
        }
        bn=0;
        zh=0;
        area=0;
        for(i=0; i<n; i++)
        {
            j=0;
            while(map[i][j]==‘.‘ && j<m )
            {
                j++;
            }
            if(j==m-1)
            {
                continue;
            }
            dd=m-1;
            while(map[i][dd]==‘.‘ && dd>=0 )
            {
                dd--;
            }
            for(k=j; k<=dd; k++)
            {
                if(map[i][k]==47 || map[i][k]==92 )
                {
                    bn++;
                }
                else
                {
                    zh++;
                }
            }
        }
        area=bn/2+zh;
        cout<<area<<endl;
    }
    return 0;
}
标签:des style blog http io ar os sp for
原文地址:http://www.cnblogs.com/yspworld/p/4087893.html