P1056 排座椅
struct ff
{
int x,y,p,q;
}aa[2001];
int main()
{
int m,n,k,l,d,i,t=0,u=0,j,as,ax;
int hang[5000]={0},lie[5000]={0};
scanf("%d%d%d%d%d",&m,&n,&k,&l,&d);
for(i=0;i<d;i++)
{
scanf("%d%d%d%d",&aa[i].x,&aa[i].y,&aa[i].p,&aa[i].q);
}
for(i=0;i<d;i++)
{
if(aa[i].x==aa[i].p&&(fabs(aa[i].y-aa[i].q)==1))
{
lie[u++]=(aa[i].y<aa[i].q?aa[i].y:aa[i].q);
}
if(aa[i].y==aa[i].q&&(aa[i].x==((aa[i].p)-1)||aa[i].x==((aa[i].p)+1)))
{
hang[t++]=(aa[i].x<aa[i].p?aa[i].x:aa[i].p);
}
}
for(i=0;i<t-1;i++)
{
for(j=i+1;j<t;j++)
{
if(hang[i]>hang[j])
{
as=hang[i];
hang[i]=hang[j];
hang[j]=as;
}
}
}
for(i=0;i<t-1;i++)
{
printf("%d ",hang[i]);
}
printf("%d\n",hang[i]);
for(i=0;i<u-1;i++)
{
for(j=i+1;j<u;j++)
{
if(lie[i]>lie[j])
{
ax=lie[i];
lie[i]=lie[j];
lie[j]=ax;
}
}
}
for(j=0;j<u-1;j++)
{
printf("%d ",lie[j]);
}
printf("%d\n",lie[j]);
}
求看!大佬!!!!!
为啥数组越界!!!!
先帮你 排版一下
看看题目要求的输入数据范围是多少?
大兄弟,你的代码不是RE 是Wrong Answer
还有题目要求输出 K和L ,而你输出的是U,T ,题目规定了K个横线,L个竖线进行划分,你不能超过它们也不能少于它们
nclude <stdio.h>
include <ctype.h>
include <string.h>
include <math.h>
define N 200
struct ff
{
int x,y,p,q;
}aa[2001];
int main()
{
int m,n,k,l,d,i,t=0,u=0,j,as,ax;
int hang[5000]={0},lie[5000]={0};
scanf("%d%d%d%d%d",&m,&n,&k,&l,&d);
for(i=0;i<d;i++)
{
scanf("%d%d%d%d",&aa[i].x,&aa[i].y,&aa[i].p,&aa[i].q);
}
for(i=0;i<d;i++)
{
if(aa[i].x==aa[i].p&&(fabs(aa[i].y-aa[i].q)==1))
{
lie[u++]=(aa[i].y<aa[i].q?aa[i].y:aa[i].q);
}
if(aa[i].y==aa[i].q&&(aa[i].x==((aa[i].p)-1)||aa[i].x==((aa[i].p)+1)))
{
hang[t++]=(aa[i].x<aa[i].p?aa[i].x:aa[i].p);
}
}
for(i=0;i<t-1;i++)
{
for(j=i+1;j<t;j++)
{
if(hang[i]>hang[j])
{
as=hang[i];
hang[i]=hang[j];
hang[j]=as;
}
}
}
for(i=0;i<t-1;i++)
{
printf("%d ",hang[i]);
}
printf("%d\n",hang[i]);
for(i=0;i<u-1;i++)
{
for(j=i+1;j<u;j++)
{
if(lie[i]>lie[j])
{
ax=lie[i];
lie[i]=lie[j];
lie[j]=ax;
}
}
}
for(j=0;j<u-1;j++)
{
printf("%d ",lie[j]);
}
printf("%d\n",lie[j]);
}
大佬好强啊!!!!!!!!!!!
把题目贴出来。
– Shendu.CC 5年前