| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1204 人关注过本帖
标题:请高手进来帮忙解决魔方矩阵的问题,谢谢了..
只看楼主 加入收藏
qleevv
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2006-10-17
收藏
 问题点数:0 回复次数:13 
请高手进来帮忙解决魔方矩阵的问题,谢谢了..
看了楼下兄弟的回复,我方才省悟,初来贵宝地,不懂规矩,请多多原谅.
我要认真学习版规.


魔方矩阵的问题 就是输入1-n的自然数,
形成如3*3 或5*5的矩阵,这个矩阵每行的数之和和每列的数之和以及对角线的数之和都是相等的.

我这错在哪了? 得不到我想要的东东啊.
顺便问下,魔方阵这个题目是不是很难?老潭数组那章的习题我大部分都能做出来,最次也都有个思路.
但是这个我自己做做不出来,一点思路都没..
我是抄老潭题库的答案的,结果还不对,郁闷.
发现老潭的书上的错误不少啊.
前面就有类似的问题.
偶是初学c的新手.帮帮忙.谢谢了.
#include <stdio.h>
main()
{int a[16][16],i,j,k,p,m,n;
p=1;
while(p==1)
{printf("请输入n.(1<n<=15,n是奇数.)\n");
scanf("%d",&n);
if((n!=0)&&(n<=15)&&(n%2!=0))
{printf("矩阵阶数是%d\n.",n);
p=0;
}
}
for(i=0;i<=n;i++)
for(j=1;j<=n;j++)
a[i][j]=0;
j=n/2+1;
a[1][j]=1;
for(k=2;k<=n*n;k++)
{i=i-1;
j=j+1;
if((i<1)&&(j>0))
{i=i+2;j=j-1;}
else{if(i<1)i=n;
if(i>n)j=1;
}
if(a[i][j]==0)
a[i][j]=k;
else
{i=i+2;
j=j-1;
a[i][j]=k;
}
}
for(i=1;i<=n;i++)
{for(j=1;j<=n;j++)
printf("%3d",a[i][j]);
printf("\n");
}
}

[此贴子已经被作者于2007-1-9 15:30:23编辑过]

搜索更多相关主题的帖子: 魔方 矩阵 
2007-01-08 22:45
qleevv
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2006-10-17
收藏
得分:0 
自己顶..
没人来啊
=.=
2007-01-09 14:55
Still_Linux
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2007-1-4
收藏
得分:0 

你写的这样标题谁进来啊?去看看生存手册吧,会也不给你解答!


鑷村姏浜庤嫳鏂囧?涔狅紝缈昏瘧涓嶅噯纭?紝璇峰ぇ瀹惰?璋咃紒
2007-01-09 15:11
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
收藏
得分:0 
不是没有人来,而是大家都不知道你这个程序想要实现什么。其实我也不懂!请说明白一些。

~~我的明天我知道~~
2007-01-09 15:13
qleevv
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2006-10-17
收藏
得分:0 
哦 sorry
是这样的
所谓魔方阵就是输入1-n的自然数,
形成如3*3 或5*5的矩阵,这个矩阵每行的数之和和每列的数之和以及对角线的数之和都是相等的.

[此贴子已经被作者于2007-1-9 15:22:00编辑过]

2007-01-09 15:21
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
收藏
得分:0 
以下是引用qleevv在2007-1-8 22:45:25的发言:
魔方矩阵的问题 
我这错在哪了? 得不到我想要的东东啊.
顺便问下,魔方阵这个题目是不是很难?老潭数组那章的习题我大部分都能做出来,最次也都有个思路.
但是这个我自己做做不出来,一点思路都没..
我是抄老潭题库的答案的,结果还不对,郁闷.
发现老潭的书上的错误不少啊.
前面就有类似的问题.
偶是初学c的新手.帮帮忙.谢谢了.
#include <stdio.h>
main()
{int a[16][16],i,j,k,p,m,n;
p=1;
while(p==1)
{printf("请输入n.(1<n<=15,n是奇数.)\n");
scanf("%d",&n);
if((n!=0)&&(n<=15)&&(n%2!=0))
{printf("矩阵阶数是%d\n.",n);
p=0;
}
}
for(i=0;i<=n;i++)
for(j=1;j<=n;j++)
a[i][j]=0;
j=n/2+1;
a[1][j]=1;
for(k=2;k<=n*n;k++)
{i=i-1;//i没有赋初值。
j=j+1;
if((i<1)&&(j>0))
{i=i+2;j=j-1;}
else{if(i<1)i=n;
if(i>n)j=1;
}
if(a[i][j]==0)
a[i][j]=k;
else
{i=i+2;
j=j-1;
a[i][j]=k;
}
}
for(i=1;i<=n;i++)
{for(j=1;j<=n;j++)
printf("%3d",a[i][j]);
printf("\n");
}
}


~~我的明天我知道~~
2007-01-09 15:23
qleevv
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2006-10-17
收藏
得分:0 

首先谢谢楼上的MM?
这个题我不会做
原抄老潭的习题库的答案
程序编译无错 运行却得不到想要的东东
楼上的解释我明白
但是按你的解释 我还是不会做.

[此贴子已经被作者于2007-1-9 15:28:30编辑过]

2007-01-09 15:27
qleevv
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2006-10-17
收藏
得分:0 
以下是引用Still_Linux在2007-1-9 15:11:30的发言:

你写的这样标题谁进来啊?去看看生存手册吧,会也不给你解答!

我只是标题写的不对劲,没有别的什么吧,为什么说会也不给说呢? 不过还是要谢谢你提醒我.我刚看完.
3Q

[此贴子已经被作者于2007-1-9 15:37:35编辑过]

2007-01-09 15:31
csight
Rank: 1
等 级:新手上路
威 望:1
帖 子:293
专家分:0
注 册:2006-6-11
收藏
得分:0 
这是我自己写的,多指教!!
/*魔法方阵*/
#i nclude"stdio.h"
#i nclude"conio.h"
#define N 5
main()
{
int a[N][N]={0},i,j,x,y,cur_x,cur_y;
clrscr();
a[0][N/2]=1;
cur_x=0;cur_y=N/2;
for(i=2;i<=N*N;i++)
{
x=cur_x;y=cur_y;
cur_x==0?cur_x=N-1:cur_x--;
cur_y==0?cur_y=N-1:cur_y--;
if(a[cur_x][cur_y]!=0)
{
cur_x=(x+1)%N;cur_y=y;
a[cur_x][cur_y]=i;
}
else a[cur_x][cur_y]=i;
}
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%-4d",a[i][j]);
printf("\n");
}
getchar();
}
原理:从1到N(必须是奇数)的平方,填入方阵,使的各行,各列,以及对角线的和均相等;先在第一行的 中间填上1,(*)再在它的左上角填比它大1的数,如果数组越界,则跳到最后一行(或一列),如果此位置已经填入了一个数,则返回到原来的位置的下方,填入此数;重复(*),依次填满整个数组。

头可断,发型不可乱;血可流,皮鞋不可不擦油;
2007-01-09 16:06
qleevv
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2006-10-17
收藏
得分:0 
谢谢你了 呵呵
一会我试下
还想问你个问题
#i nclude"conio.h"
是调用什么库函数
不懂啊...
只知道#i nclude"stdio.h"和"include "mathe.h"
偶是一只很菜的菜鸟

[此贴子已经被作者于2007-1-9 18:19:59编辑过]

2007-01-09 17:49
快速回复:请高手进来帮忙解决魔方矩阵的问题,谢谢了..
数据加载中...
 
   



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

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