欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

uva 201 Squares 今天的主题依然是runtime error

程序员文章站 2022-03-14 19:39:26
...

uva 201 Squares 今天的主题依然是runtime error

哎呀真的菜。。。好烦啊
题目链接
代码也没有想大家劳神看,权当我简单记录吧

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int size,linenum;
int zt=1;//待输入状态为1
void getinfo(int a)
{
	int i,j,m,n,direct,y,x,sum,status=1,k=1;
	if((scanf("%d%d",&size,&linenum))==EOF) 
	{zt=0;//不再待输入
	exit(-1);
	}
	getchar();
	int dot[size+1][size+1],*pdot=&dot[1][1],*p;
	for(i=1;i<(size+1);i++)
	for(j=1;j<(size+1);j++)
	{
		dot[i][j]=1;
	}
	for(i=1;i<=linenum;i++)
		{
			scanf("%c%d%d",&direct,&y,&x);
			getchar();
			if(direct=='H')
			  {
			  	dot[y][x]*=direct;
			  }
			else 
			  {
				dot[x][y]*=direct;
			  } 
		}
		if(a)printf("\n**********************************\n\n");
		printf("Problem #%d\n\n",++a);
    for(i=1;i<=size-1;i++)
      { 
        sum=0;
      	for(m=1;m<=size-i;m++)
      	  {
      	  	for(n=1;n<=size-i;n++)
      	  	  {
				status=1;
      	  	  	for(j=1;j<=i&&status;j++)
      	  	  	  {
      	  	  	  	if(j==1)if(!(dot[m][n]/'H'/'V'))status=0; //处于正方形角上就会有水平线也有垂直线
      	  	  	  	else if((dot[m][n+j-1]%'H'))status=0; 
			      }
			    for(j=1;j<=i&&status;j++)
      	  	  	  {
      	  	  	  	if((dot[m+j-1][n]%'V'))status=0;
			      }
			    for(j=1;j<=i&&status;j++)
      	  	  	  {
      	  	  	  	if((dot[m+i][n+j-1]%'H'))status=0; 
			      }  	
			    for(j=1;j<=i&&status;j++)
      	  	  	  {
      	  	  	    if((dot[m+j-1][n+i]%'V'))status=0;
			      }   
			   if(status) 
				{
				  sum++;
				}
			  } 
		  }
		 if(sum)
		{
			printf("%d square(s) of size%d\n",sum,i);k=0;
	    } 
	    
	  }
	if(k)printf("No completed squares can be found.\n");
     k=1;
}



int main()
{
	int i=-1;
	while(zt)
	getinfo(++i);
} 

现在是凌晨1点45分,晚安

相关标签: uva