圣诞节快乐英文歌曲:C语言高手进!!!!

来源:百度文库 编辑:中科新闻网 时间:2024/04/29 21:01:47
#include<stdio.h>
void main()
{
int a[15][15],i,j,n=0,k;
while(n%2==0||n<=0||n>15)
{scanf("%d",&n);
printf("\n");}
memset(a,0,sizeof(a));
for(i=(n-1),j=(n+1)/2,k=1;k<=n*n;i++,j++,k++)
if(a[(i+1)%(n+1)][(j+1)%(n+1)]==0)
a[(i+1)%(n+1)][(j+1)%(n+1)]=k;
else a[(--i+1)%(n+1)][j%(n+1)]=k;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%5d",a[i][j]);
printf("\n");}
}
这个算魔方阵的算法 错在哪啊?请赐教~
大哥,你们有没有看懂啊?
K是值,%(n+1)就是把第六行变回第零行~
就可以反复在1——5行间循环,
不是高手就不要乱说话好不好~

计算错了哦
你要算的数是多少改一下就行
你不要这么简单的计算都不会啊

算魔方阵的算法
是什么啊?

你的程序没有函数头的声明

#include <string.h>
#include <stdio.h>
#include <mem.h>
void main()
{
int a[15][15],i,j,n=0,k;
while(n%2==0||n<=0||n>15)
{scanf("%d",&n);
printf("\n");}
memset(a,0,sizeof(a));
for(i=(n-1),j=(n+1)/2,k=1;k<=n*n;i++,j++,k++)
if(a[(i+1)%(n+1)][(j+1)%(n+1)]==0)
a[(i+1)%(n+1)][(j+1)%(n+1)]=k;
else a[(--i+1)%(n+1)][j%(n+1)]=k;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%5d",a[i][j]);
printf("\n");}
}

我用TC试过,应该没什么问题的