返回题目问答
讨论 / 题目问答/ 帖子详情

一分没拿,但是自己跑的结果都是符合要求的,想知道问题出在哪,谢谢

#include
using namespace std;
int main()
{
	ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
	int i,j,n=1,a[100][100];
	cin >>i>>j;
	int x=0,y=j-1;
	a[x][y]=1;
	while(1)
	{
		if(n==i*j)
			break;
		while(1)
		{
			if(n==i*j)
			break;
			if(x<i-1&&a[x+1][y]==0)
			{
				n++;
				x++;
				a[x][y]=n;
			}
			else break;
			if(n==i*j)
			break;
		}
		while(1)
		{
			if(n==i*j)
				break;
			if(y>0&&a[x][y-1]==0)
			{
				n++;
				y--;
				a[x][y]=n;
			}
			else break;
			if(n==i*j)
			break;
			
		}
		while(1)
		{
			if(n==i*j)
			break;
			if(x>0&&a[x-1][y]==0)
			{
				n++;
				x--;
				a[x][y]=n;
			}
			else break;
			if(n==i*j)
			break;
		}
		while(1)
		{
			if(n==i*j)
				break;
			if(y<j-1&&a[x][y+1]==0)
			{
				n++;
				y++;
				a[x][y]=n;
			}
			else break;
			if(n==i*j)
			break;
		}
			if(n==i*j)
			break;
	}
	for(int k=0;k<i;k++)
	{
		for(int l=0;l<j;l++)
			{
				printf("%5d",a[k][l]);
			}
			cout << endl;
	}
	return 0;	
 }
0 回复 0 转发 0 喜欢 143 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!