求助:关于变量定义前后差异
  • 板块灌水区
  • 楼主fzx2201
  • 当前回复6
  • 已保存回复6
  • 发布时间2022/12/3 17:42
  • 上次更新2023/10/27 00:36:33
查看原帖
求助:关于变量定义前后差异
876797
fzx2201楼主2022/12/3 17:42

写了一个蛇形方阵的代码,正解为:

#include<bits/stdc++.h>
using namespace std;
long long sz[1510][1510];
int main()
{
//蛇形方阵
	int s[26][26],m,jsz=1,x,y;
	cin>>m;
	memset(s,0,sizeof(s));
	x=0;
	y=m-1;
	s[x][y]=1;
	for(;jsz<m*m;) 
	{
		while(x+1<m&&!s[x+1][y])//向下写 
			s[++x][y]=++jsz;
		while(y-1>=0&&!s[x][y-1])//向左写 
			s[x][--y]=++jsz;
		while(x-1>=0&&!s[x-1][y])//向上写 
			s[--x][y]=++jsz;
		while(y+1<m&&!s[x][y+1])//向右写 
			s[x][++y]=++jsz;
	}
	for(x=0;x<m;x++)
	{
		for(y=0;y<m;y++)
			printf("%4d",s[x][y]);
		printf("\n");
	}
   	return 0;
}

但是如果在一开始定义x,y的时候就赋值,则虽然不会报错,结果会产生极大的误差,求问这种情况产生的原因。

2022/12/3 17:42
加载中...