为啥n是奇数的时候,应该输出n*n的地方反而输出0
查看原帖
为啥n是奇数的时候,应该输出n*n的地方反而输出0
1269314
LiChenyi05楼主2024/3/29 13:51
#include <bits/stdc++.h>
using namespace std;
int arr[12][12];
int main()
{
	int n;
	cin>>n;
	int i=1,j=1;
	int k=0;
	int loop=0;
	int m=0;
	if(n%2!=0)
	{
		m=n/2+1;
	}
	else
	{
		m=n/2;
	}
	while(loop<m)
	{
		i=loop+1;
		j=loop+1;
		while(j<n-loop)
		{
			k++;
			arr[i][j]=k;
			j++;
		}
		while(i<n-loop)
		{
			k++;
			arr[i][j]=k;
			i++;
		}
		while(j>1+loop)
		{
			k++;
			arr[i][j]=k;
			j--;
		}
		while(i>1+loop)
		{
			k++;
			arr[i][j]=k;
			i--;
		}
		loop++;
	}
	for(int i=1;i<=n;i++)
	{
		cout<<" ";
		for(int j=1;j<=n;j++)
		{
			
			if(arr[i][j]<10)
			{
				cout<<" ";
			}
			cout<<arr[i][j]<<" ";
		}
		cout<<endl;
	}
	return 0;
}

想问一下,这个代码当n是奇数的时候为什么不能输出arr[n/2+1][n/2+1]=n*n,反而输出的是0

2024/3/29 13:51
加载中...