---------------------------------------------------------------------------
Code: Select all
#include<stdio.h>
#include<stdlib.h>
#define RECTANGLE 1
#define CIRCLE 2
struct FIGURE
{
int shape;
double x1, y1, x2, y2, r;
}figure[12];
void main()
{
int i, j, number_of_figures, number_of_points, temp;
double x[12], y[12], a, b;
char c1;
/*initialize*/
i=0;
scanf("%c", &c1);
/*read in*/
while(c1!='*')
{
if(c1=='r')
{
figure[i].shape=RECTANGLE;
scanf("%lf %lf %lf %lf",
&figure[i].x1, &figure[i].y1, &figure[i].x2, &figure[i].y2);
i++;
}
else if(c1=='c')
{
figure[i].shape=CIRCLE;
scanf("%lf %lf %lf", &figure[i].x1, &figure[i].y1, &figure[i].r);
i++;
}
scanf(" %c", &c1);
}
number_of_figures=i;
/*read in points*/
i=0;
scanf("%lf %lf", &x[i], &y[i]);
while(x[i]!=9999.9 || y[i]!=9999.9)
{
i++;
scanf("%lf %lf", &x[i], &y[i]);
}
number_of_points=i;
/*Analyze & output*/
temp=0;
for(i=0; i<number_of_points; i++, temp=0){
for(j=0; j<number_of_figures; j++)
{
if(figure[j].shape==RECTANGLE)
{
if(x[i]>figure[j].x1 && x[i]<figure[j].x2 && y[i]<figure[j].y1 && y[i]>figure[j].y2)
{
temp++;
printf("Point %d is contained in figure %d\n", i+1, j+1);
}
}
else if(figure[j].shape==CIRCLE)
{
a=x[i]-figure[j].x1;
b=y[i]-figure[j].y1;
if(a*a+b*b<figure[j].r*figure[j].r)
{
temp++;
printf("Point %d is contained in figure %d\n", i+1, j+1);
}
}
}
if (!temp)
printf("Point %d is not contained in any figure\n", i+1);
}
}