标题:〓同志们看看〓
取消只看楼主
Tianyin1019
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-5-8
 问题点数:0 回复次数:1 
〓同志们看看〓

置了整数1到n的n*n矩阵,每一行每一列对角线和相等

算法:首先顶行中央填1
向左上方移动
按递增次序填入空格
如果当前位置已在顶行,最下行视为其顶行 如果当前位置已在最左行行,最右行视为其左行行 如果移动时,左上方有数,直接下移

例如
15 8 1 24 17
16 14 7 5 23
22 20 13 6 4
3 21 19 12 10
9 2 25 18 11

#include<stdio.h>
void main()
{
int i,j,n,k,a[100][100];
scanf("%d",&n);

if(n%2==0)
printf("Input number must be an odd integer");
else {a[0][(n-1)/2]=1;
i=n-1;j=(n-3)/2;
for(k=2;k<(n*n+1);k++)
{if(a[i][j]!=0)a[i-1][j]=k;
else {a[i][j]=k;
i=i--;
j=j--;
if(i<0)i=n-1;
else;
if(j<0)j=n-1;
else;}
}
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
printf("%4d",a[i][j]);
printf("\n");}
}
}
我同学说这个不行,高手给个完整的能实现的吧!!!!急用!!

搜索更多相关主题的帖子: 同志 左上方 void int 
2006-05-29 22:57
Tianyin1019
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-5-8
得分:0 
感谢2楼的大哥,我以后会注意的!

努力学习编程!!!!!!
2006-05-30 07:10



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-68386-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.074330 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved