Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

Re:写了1个小时的程序,却花了3个多小时都没发现错误,谁能帮我看一下程序,先谢了

Posted by longniu at 2010-04-08 15:50:05 on Problem 2632
In Reply To:写了1个小时的程序,却花了3个多小时都没发现错误,谁能帮我看一下程序,先谢了 Posted by:fjnu_jxd_008 at 2005-10-07 17:47:14
> 程序如下:
> #include<stdio.h>
> char data[]="ESWN";
> int d[200],room[200][200],a,b,x[200],y[200];
> int check(int k,int n)
> {
> 	int t,i;
> 	if(d[k]==1)
> 	{
> 		t=x[k];
> 		for(i=1;i<=n;i++)
> 		{
> 			t++;
> 			if(t>a)
> 	    		return -1;
> 	    	if(room[y[k]][t])
> 		    	return room[y[k]][t];
> 		}
> 		room[y[k]][x[k]]=0;
> 		room[y[k]][t]=k;
> 		x[k]=t;
> 		return 0;
> 	}
>     if(d[k]==2)
> 	{
> 		t=y[k];
> 		for(i=1;i<=n;i++)
> 		{
> 			t--;
> 			if(t<=0)
> 	    		return -1;
> 	    	if(room[t][x[k]])
> 		    	return room[t][x[k]];
> 		}
> 		room[y[k]][x[k]]=0;
> 		room[t][x[k]]=k;
> 		y[k]=t;
> 		return 0;
> 	}
> 	if(d[k]==3)
> 	{
> 		t=x[k];
> 		for(i=1;i<=n;i++)
> 		{
> 			t--;
> 			if(t<=0)
> 	    		return -1;
> 	    	if(room[y[k]][t])
> 		    	return room[y[k]][t];
> 		}
> 		room[y[k]][x[k]]=0;
> 		room[y[k]][t]=k;
> 		x[k]=t;
> 		return 0;
> 	}
> 	t=y[k];
> 	for(i=1;i<=n;i++)
> 	{
> 		t++;
>  		if(t>b)
> 	   		return -1;
> 	   	if(room[t][x[k]])
> 	    	return room[t][x[k]];
> 	}
> 	room[y[k]][x[k]]=0;
> 	room[t][x[k]]=k;
> 	y[k]=t;
> 	return 0;
> }
> int main()
> {
> 	int i,j,k,n,m,N,t,s;
> 	char c;
> 	scanf("%d",&N);
> 	for(i=1;i<=N;i++)
> 	{
> 		scanf("%d %d",&a,&b);
> 		for(j=1;j<=b;j++)
> 			for(k=1;k<=a;k++)
> 				room[j][k]=0;
> 		scanf("%d %d",&n,&m);
> 		for(j=1;j<=n;j++)
> 		{
> 			scanf("%d %d %c",&x[j],&y[j],&c);
> 			room[y[j]][x[j]]=j;
> 			for(k=0;k<=3;k++)
> 				if(c==data[k])
> 					break;
> 			d[j]=k+1;
> 		}
> 		for(j=1;j<=m;j++)
> 		{
> 			scanf("%d %c %d",&t,&c,&s);
> 			if(c=='L')
> 			{
> 				s%=4;
> 				d[t]-=s;
> 				if(d[t]<=0)
> 					d[t]+=4;
> 			}
> 			else if(c=='R')
> 			{
> 				s%=4;
> 				d[t]+=s;
> 				d[t]%=4;
> 				if(d[t]==0)
> 					d[t]=4;
> 			}
> 			else
> 			{
> 				k=check(t,s);
> 				if(k!=0)
> 					break;
> 			}
> 		}
> 		if(k==-1)
> 			printf("Robot %d crashes into the wall\n",t);
> 		else if(k==0)
> 			printf("OK\n");
> 		else
> 			printf("Robot %d crashes into robot %d\n",t,k);
> 		for(k=j+1;k<=m;k++)
> 			scanf("%d %c %d",&t,&c,&s);
> 	}
> 	return 0;
> }

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator