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分,晚安