社区讨论

关于数组初始化的疑问

P5461赦免战俘参与者 4已保存回复 6

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
6 条
当前快照
1 份
快照标识符
@lo7f7day
此快照首次捕获于
2023/10/27 00:50
2 年前
此快照最后确认于
2023/10/27 00:50
2 年前
查看原帖
上代码
CPP
#include<iostream>
#include<cmath> 
using namespace std;
int s[1025][1025];
void f(int a,int x,int y)//a表示边长,x,y表示坐标 
{
	if(a==2)
	{
		s[x][y]=0;
		return;
	}
	for(int i=x;i<=x+a/2-1;i++)
	for(int j=y;j<=y+a/2-1;j++)
	s[i][j]=0;
	f(a/2,x+a/2,y);
	f(a/2,x,y+a/2);
	f(a/2,x+a/2,y+a/2);
}
int main()
{
	int n,p;
	cin>>n;
	p=pow(2,n);
	for(int i=1;i<=p;i++)
		for(int j=1;j<=p;j++)
			s[i][j]=1;//这样初始化是对的,但用s[1025][1025]={1}输出的都是0
	f(p,1,1);
	for(int i=1;i<=p;i++)
		{
			for(int j=1;j<=p;j++)
				cout<<s[i][j]<<' ';
			cout<<endl;
		}
}

哪位大佬知道原理啊

回复

6 条回复,欢迎继续交流。

正在加载回复...