判斷點是否在某矩形中

[心得]

1.由於座標是 float 形式,不能用"等於"來判斷結束條件 9999.9

2.不能偷懶連續判斷"小於",要分開寫

 

#include <stdio.h>
#include <string.h>

int main()
{
    float x1[10],x2[10],y1[10],y2[10];
    float X[1000],Y[1000];
    char input[2];
    int m=1,n=1;
    int i,j,flag;
   
    while(scanf("%s",input))
    {
        if(input[0]=='*') break;
       
        scanf("%f %f",&x1[m],&y2[m]);
        scanf("%f %f",&x2[m],&y1[m]);
        m++;
    }   
    while(scanf("%f %f",&X[n],&Y[n]))
    {
        if((X[n]>=9999.9)&&(Y[n]>=9999.9)) break;
        n++;
    }   
    for(i=1;i<n;i++)
    {
        flag=0;
        for(j=1;j<=m;j++)
        {
            if((x1[j]<X[i])&&(X[i]<x2[j])&&(y1[j]<Y[i])&&(Y[i]<y2[j]))
            {
                printf("Point %d is contained in figure %d\n",i,j);
                flag=1;
            }
        }
        if(flag==0) printf("Point %d is not contained in any figure\n",i);
    }
   
    return 0;
}

創作者介紹
創作者 RingsACM 的頭像
RingsACM

Ring's ACM

RingsACM 發表在 痞客邦 留言(0) 人氣()