C言語の魔方陣について
Posted: 2010年9月21日(火) 11:39
今C言語の勉強をしていて、友人の手を借りてやっとできたのですが、デバック後にエラーが出てしまいました。
自分自身まだ完全に理解していないのでよくわからなくて困っています。
どなたか改善点を教えてくださらないでしょうか?
形は5×5の中央の最上列からスタートという形です。
#include<stdio.h>
void main(void)
{
int mahoujin[5][5], x, y, i, n;
i = 1;
x = 5 / 2 + 1;
y = 1;
n = 5;
mahoujin[x][y] = 1;
for( i = 2; i <= 5 * n; i++ )
{
if( i % n == 1 )
{
y = y + 1;
}
else
{
x = x + 1;
y = y - 1;
}
if( x > n ) x = 1;
if( y < 1 ) y = n;
mahoujin[x][y] = i;
}
for( y = 1; y <= n; y++ )
{
for( x = 1; x <= n; x++ )
{
printf( "%3d ", mahoujin[x][y] );
}
printf( "\n" );
}
rewind(stdin);
getchar();
}

自分自身まだ完全に理解していないのでよくわからなくて困っています。
どなたか改善点を教えてくださらないでしょうか?
形は5×5の中央の最上列からスタートという形です。
#include<stdio.h>
void main(void)
{
int mahoujin[5][5], x, y, i, n;
i = 1;
x = 5 / 2 + 1;
y = 1;
n = 5;
mahoujin[x][y] = 1;
for( i = 2; i <= 5 * n; i++ )
{
if( i % n == 1 )
{
y = y + 1;
}
else
{
x = x + 1;
y = y - 1;
}
if( x > n ) x = 1;
if( y < 1 ) y = n;
mahoujin[x][y] = i;
}
for( y = 1; y <= n; y++ )
{
for( x = 1; x <= n; x++ )
{
printf( "%3d ", mahoujin[x][y] );
}
printf( "\n" );
}
rewind(stdin);
getchar();
}
