Đề bài nhập n lẻ, sau đó in ra mảng 2 chiều gồm các số từ 1 đến n*n sao cho tổng hàng ngang, hàng dọc, 2 hàng chéo bằng nhau.
Code em test 5; 7; 9; 11… thì ngon nhưng test số 3 lại lỗi. Bác giúp em với
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,i,j,k;
do
{
cout <<"Nhập n lẻ: \n";
cin >>n;
}
while (n%2==0);
i=n/2;
j=n/2+1;
int a[n][n];
for (k=1;k<=n*n;k++)
{
a[i][j]=k;
if (k%n==0)
{
j+=2;
}
else
{
i--;
j++;
}
if (j>(n-1))
{
j=(j%(n-1)-1);
}
if (i<0)
{
i=n-1;
}
}
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
{
cout <<setw(3);
cout <<a[i][j]<<" ";
}
cout <<endl<<endl;
}
return 0;
}
Mấy bác giúp em giải quyết với @DoTran1