91 数星星

91 数星星

作者: Turbo时间限制: 1S章节: 结构体

问题描述 :

一天,小明坐在院子里数星星,爸爸就出了个难题给她:爸爸在天空指定了一个区域,让他数数这个区域里有多少颗星星,爸爸还为他标出了每个星星的坐标。但小明数着数着就看花了眼,并且也可能忘记某一颗星星是否已经数过,但他的原则是:宁愿多数一次,不可错过一个。如果小明把他数过的星星的坐标都告诉你,你能否帮他进行排重处理(如果两个星星的坐标位置相同,则视为一个星星),计算出星星的个数。

输入说明 :

首先输入一个整数n(n<=300),接下来的n对整数,每对表示小明数过的一个星星的位置(星星的坐标在-10000到10000之间)。

输出说明 :

输出星星的个数。

输入范例 :

5
0 3
-1 5
1 -1
1 1
-1 5

输出范例 :

4
 

#include <stdio.h>

typedef struct
{
	int x,y;
}Star;

Star star[301];//先尝试不初始化数组
int main()
{
	int n,x,y;
	int i,j,count,flag;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		scanf("%d %d",&x,&y);
		if(i==1)
		{
			star[1].x=x;
			star[1].y=y;
			count=1;
		}	
		else 
		{
			for(j=1;j<=count;j++)
			{
				flag=0;
				if(star[j].x==x && star[j].y==y)
				{
					flag=1;
					break;
				}
			}
			if(flag==0)
			{
				count++;
				star[count].x=x;
				star[count].y=y;
			}
		}
	}
	if(n==0)
		printf("0\n");
	else 
		printf("%d\n",count);
	return 0;
}

猜你喜欢

转载自blog.csdn.net/HurryBen/article/details/105720382
91