nhập n in ra n bình phương tăng dần theo xoáy ốc
em có code thế này
Code:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
main()
{
int manga[50][50],mangb[50],i,j,n,m,k,c;
printf("\n nhap vao mot so tu nhien: ");
scanf("%d",&n);
m=n;
c=n*n;
for(i=1;i<=c;i++)
mangb[i]=i;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if((n*i+j)<c)
manga[i][j]=mangb[n*i+j];
////////////////////////////////////////////////////////////
int dem =0;
i=1; j=1;
int DauTien=0;
int Tru=0;
do
{
i=DauTien;
for (j=i; j<m - Tru; j++)
{ dem++;
manga[i][j] = mangb[dem];
}
j--;
for (i++; i<n - Tru; i++ )
{
dem++;
manga[i][j] = mangb[dem];
}
i--;
for (j--; j>=Tru; j--)
{ dem++;
manga[i][j] = mangb[dem];
}
Tru++;
j++;
for (i--; i>=Tru; i--)
{ dem++;
manga[i][j] = mangb[dem];
}
DauTien++;
} while (dem!=n*m);
printf("\t------------------------\n");
for (int i=0; i<n; i++)
{
printf("\t");
for (int j=0; j<m; j++)
{
printf("%4d", manga[i][j]);
}
printf("\n");
}
printf("\t------------------------\n");
getch();
}
sau khi chạy ra với các số từ 7 trở xuống thì đúng, nhưng từ 8 trở lên thì sai, tại sao thế ạ