当前位置:首页 » 编程软件 » 幻方与编程

幻方与编程

发布时间: 2025-01-03 05:54:28

A. c语言编程幻方输入问题

#include <stdio.h>
#define N 3
int fun(int (*a)[N])
{ int i,j,m1,m2,row,colum;
m1=m2=0;
%判断对角线的和不否相等 不相等返回0
for(i=0; i<N; i++)
{ j=N-i-1; m1+=a[i][i]; m2+=a[i][j]; }
if(m1!=m2) return 0;
for(i=0; i<N; i++) {
/**********found**********/
row=colum=0;
%判断行row 列colum的和 是否相等 不相等返回0
for(j=0; j<N; j++)
{ row+=a[i][j]; colum+=a[j][i]; }
/**********found**********/
if( (row!=colum) || (row!=m1) ) return 0;
}
/**********found**********/
%判断完毕是幻方返回1
return 1;
}
main()
{ int x[N][N],i,j;
%输入矩阵x
printf("Enter number for array:\n");
for(i=0; i<N; i++)
for(j=0; j<N; j++) scanf("%d",&x[i][j]);
printf("Array:\n");
%输出矩阵
for(i=0; i<N; i++)
{ for(j=0; j<N; j++) printf("%3d",x[i][j]);
printf("\n");
}
%根据fun的值输出结果
if(fun(x)) printf("The Array is a magic square.\n");
else printf("The Array isn't a magic square.\n");
}
你要是符合C规则的矩阵输入方法否可以啊??? 你看输出矩阵那块 输出的矩阵跟你输入的是不是一样啊 要是一样 结果都是对的 一般的就是 列之间用空格 行之间用回车 这段程序的重点是为什么把 判断对角线写在前面吧????要是顺序反了 判断是不全面的

B. 幻方的程序编写

利用计算机编程序,可求解出任意阶幻方.(但数字位数受电脑限制,实际上只能是有限范围内的任意阶),如利用Matlab进行计算n阶幻方,其命令为:A=magic(n)。
对于某些平方幻方,高次幻方,利用计算机辅助计算,也可快速求得。
一次幻方,一次幻立方,一次多维幻方,甚至可用简单公式全部求得。
某些类型的平方幻方,甚至高次高维幻方,也可用公式求得。
在幻方公式求解方法,中国处于世界领先水平.中国李文的高维高次幻方公式,是幻方理论中的精品.吴硕辛的高次幻方理论,也可用公式求解。

C. 幻方 问题 n 幻方编程问题

n(n为奇数)阶幻方实现方法:

⑴ 将1放在第一行中间一列;
⑵ 从2开始直到n×n止各数依次按下列规则存放按45°方向行走,如向右上每一个数存放的行比前一个数的行数减1,列数加1
⑶ 如果行列范围超出矩阵范围,则回绕,例如1在第1行,则2应放在最下一行,列数同样加1; ⑷ 如果按上面规则确定的位置上已有数,或上一个数是第1行第n列时则把下一个数放在上一个数的下面。

代码如下:
#include"stdio.h"
#include"math.h"
int a[10][10]; //定义一个二维数组存放数据,大小根据测试的阶数确定
void ins(int n)
{
int x,y,m;
x=0;
y=n/2;
for(m=1;m<=n*n;m++) //依次将1~n*n赋值给二维数组
{
a[x][y]=m;// 将1放在第一行中间一列
if(m%n!=0)
{
x--; // 从2开始直到n×n止各数依次按下列规则存放:按45度方向行走
y++;
if(x<0) // 如果行列范围超出矩阵范围,则回绕
x=x+n;
if(y==n)
y=n-y;
}
else
{
x++;
if(x==n)
x=x-n;
}
}
}
main()
{
int i,j,n;
scanf("%d",&n);//输入阶数
ins(n); //调用函数
for(i=0;i<n;i++) //打印出幻方
{
for(j=0;j<n;j++)
printf("%4d",a[i][j]); //格式化输出
puts(""); //打印2个空行
puts("");
}
getch(); //win_TC下的语句用于停住画面,其他开发环境下无需
}

D. 如何用c语言编程使三阶幻方不等(使用数字1至9,直接输出所有结果

4用1至9这9个数编制一个三阶幻方,写出所有可能的结果。所谓幻方是指在正方形的方格表的每个方格内填入不同的数,使得每行、每列和两条对角线上的各数之和...3119

E. 怎样用C语言编写幻方

你的这个问题实际上包括两个问题:
1、幻方的算法
2、怎样用C语言实现幻方的算法
这两个问题是大不同的。

关于幻方的算法,或者叫幻方填法,目前有很多种,拉丁正交、马步法等等,针对奇数或者偶数(又分单偶数和双偶数)等有不同的算法,但这些算法只是帮你找到幻方的一个或多个实例(不会是全部),而同阶数的幻方到底有多少个,那只有用穷举法了,比如4阶幻方,基本4阶幻方共7040个,剔除旋转翻转的,即具有独立结构的共880个;4阶完美幻方共84个,具有独立结构的共48个。

对于高阶幻方(比如超过8阶),穷举法实际上是不可行的,因为它的穷举时间将是天文数字(以目前主流PC),所以不要试图用计算机穷举高阶幻方的全部结果,那将是徒劳的。

如果你只是需要1个实例,那么推荐你使用MATLAB语言工具,因为它提供了幻方函数magic(n),不需要编程,直接从命令窗口输入就可以得到答案。

至于第二个问题,当然你首先会C语言,剩下的就是编程技巧问题了,而这个问题是无从回答的。相信你问的是第一个问题。
以上的回答虽然没有明确给出答案,但相信对你会有帮助。

热点内容
考试笔试编程 发布:2025-01-05 12:15:45 浏览:156
变量配置是什么意思 发布:2025-01-05 12:15:42 浏览:279
行李箱装什么密码锁好 发布:2025-01-05 12:14:57 浏览:975
家用无线存储 发布:2025-01-05 12:14:47 浏览:619
学c还是c语言还 发布:2025-01-05 12:14:03 浏览:426
咸鱼湾服务器什么意思 发布:2025-01-05 12:07:06 浏览:193
linux查看shell 发布:2025-01-05 12:04:04 浏览:49
公司服务器更换显卡是什么意思 发布:2025-01-05 12:03:23 浏览:997
如何打开加密ppt 发布:2025-01-05 11:52:01 浏览:601
神奇摄影app无法存储照片 发布:2025-01-05 11:37:42 浏览:900