数组用变量初始化会出问题吗?
查看原帖
数组用变量初始化会出问题吗?
329206
haruka0205楼主2021/11/5 19:15

这下面是我的代码,如果输入3 最后输出的是: 8 1 4200065 3 5 7 4 9 2 请问一下是为什么呢,我感觉我的逻辑是没什么问题,难道是因为不能用动态变量赋值数组嘛?

#include<cstdio>
int main(){
	int n;
	scanf("%d",&n);
	int a,b,s;//用来记录行和列
	int c[n][n]={0};
	int i,j;
	for(i=0;i<n;i++)
	{
		for(j=0;j<n;j++)
		{
			c[i][j]==0;
		}

	}
	a=0;b=(n-1)/2;
	c[0][(n-1)/2]=1;
	for(i=2;i<=n*n;i++){
		if(a==0&&b!=(n-1)){
			a=n-1;b=b+1;
			c[a][b]=i;
		}
		else if(b==(n-1)&&a!=0){
			b=0;a=a-1;
			c[a][b]=i;
		}
		else if(a==0&&b==(n-1)){
			a=a+1;
			c[a][b]=i;
		}
		else if(a!=0&&b!=(n-1)){
			if(c[a-1][b+1]==0){
				a=a-1;b=b+1;
				c[a][b]=i;
			}
			else{
				a=a+1;
				c[a][b]=i;
			}
			
		}
		
	
	} 
	for(i=0;i<n;i++)
	{
		for(j=0;j<n;j++)
		{
			printf("%d ",c[i][j]);
		}
		printf("\n");
	}
	return 0;
}
2021/11/5 19:15
加载中...