网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
03月12日
漏签
0
天
c语言吧
关注:
798,851
贴子:
4,350,259
看贴
图片
吧主推荐
视频
游戏
9
回复贴,共
1
页
<<返回c语言吧
>0< 加载中...
求一个 解 排列魔方阵元素,使对角线和相等的 算法
只看楼主
收藏
回复
MayRain00lovec
强能力者
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
题目:
打印"魔方阵".所谓魔方阵是指这样的方阵,它的每一行,每一列和对角线之和均相等.例如,三阶魔方阵为
8 1 6
3 5 7
4 9 2
这是谭书上一道题,我一直没找到算法,只知道要分奇数,4的倍数,其他偶数,这3种情况分别分析.
求教这3种情况下的算法.(1<N<20).只要算法!!!
MayRain00lovec
强能力者
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
求达人给算法啊,困扰我半年的问题啊啊啊
南昌高新区金信汽车维修..
高速救援电话是24小时都能拖车业务范围:高速抢修,汽油,柴油,机油等紧急配送,补胎换胎,拖车等专业高速道路救援服务,明码标价,收费合理。
2025-03-12 13:04
广告
立即查看
奥·备仑思
毛蛋
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
首先,这个方阵必须是奇数*奇数大小。
然后,把1放到第一行的中间。
之后,行减一、列加一的方向放2,然后放3……
如果为第一行时,则变成最后一行;
如果为最后一列时,则变成第一列;
如果该位置已有数字,则把数字放到本数字的下面。
MayRain00lovec
强能力者
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
123
MayRain00lovec
强能力者
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
奇怪了,回复了几次都看不到
MayRain00lovec
强能力者
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
太感谢了,奇数的做出来了,就剩被4整除的情况和其他偶数情况了
MayRain00lovec
强能力者
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
#include <stdio.h>
void main ()
{
int a[10][10]={0};
int i,j,k,n,count,ok,t1,t2;
//i,j:存放数组的横纵坐标,n:输入的数,k:循环变量
//count:需要写入的数字个数,ok:坐标是否正确
//t1,t2:临时存放横纵坐标
printf ("请输入一个用来输出魔方阵的奇数:");
scanf ("%d",&n);
j=n/2;i=0;
count=n*n;
MayRain00lovec
强能力者
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
for (k=1;k<=count;k++)
{
a[i][j]=k;
ok=0;
do //这个do是判断下次存放数字的数组坐标
{ //一直判断,直到坐标正确为止,停
t1=i;t2=j;
if (i<=0) i=n-1;
else i--;
if (j==n-1) j=0;
else j++;
MayRain00lovec
强能力者
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
if (a[i][j]!=0)
{
i=t1+1;
j=t2;
ok=1;
}
else ok=1;
}while (ok==0);
}
MayRain00lovec
强能力者
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
{
printf ("%3d",a[i][j]);
}
printf ("\n");
}
printf ("魔方阵输出结束.\n");
}
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示