|
奇数魔方陣のプログラムは一応出来たのですが
現時点ではこんな感じです↓
#include <stdlib.h>
#include <stdio.h>
int main()
{
int data[9][9],i,j,n,cnt,a;
char str[256];
while(1){
printf("奇数を入力してください=");
fgets(str,256,stdin);
if(str[0]=='q'||str[0]=='Q')
break;
n=atoi(str);
if(n%2==0){
printf("偶数です!\n");
continue;
}
i=0;
j=n/2;
cnt=1;
data[i][j]=cnt;
for(cnt=2;cnt<=(n*n);cnt++){
if(cnt%n==1){
i++;
}
else{
i--;
j++;
}
if(i<0)
i=n-1;
if(j==n)
j=0;
data[i][j]=cnt;
}
for(i=0;i<n;i++){
for(j=0;j<n;j++){
printf("%3d",data[i][j]);
if(j==n-1)
printf("\n");
}
}
}
}
奇数魔方陣はできたのですが、見にくいので
↓のように枠をつけて表示させたいのですが
+−−+−−+−−+
| 8 | 1 | 6 |
+−−+−−+−−+
| 3 | 5 | 2 |
+−−+−−+−−+
| 4 | 9 | 2 |
+−−+−−+−−+
うまく表示できません。よかったらどのようにやればいいか
教えてください。
よろしくお願いします。
|