當前位置:首頁 » 編程軟體 » 幻方與編程

幻方與編程

發布時間: 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語言,剩下的就是編程技巧問題了,而這個問題是無從回答的。相信你問的是第一個問題。
以上的回答雖然沒有明確給出答案,但相信對你會有幫助。

熱點內容
java培訓班南京 發布:2025-01-05 12:29:36 瀏覽:732
Idea自動編譯是什麼 發布:2025-01-05 12:28:02 瀏覽:527
考試筆試編程 發布:2025-01-05 12:15:45 瀏覽:157
變數配置是什麼意思 發布:2025-01-05 12:15:42 瀏覽:280
行李箱裝什麼密碼鎖好 發布:2025-01-05 12:14:57 瀏覽:976
家用無線存儲 發布:2025-01-05 12:14:47 瀏覽:620
學c還是c語言還 發布:2025-01-05 12:14:03 瀏覽:427
咸魚灣伺服器什麼意思 發布:2025-01-05 12:07:06 瀏覽:194
linux查看shell 發布:2025-01-05 12:04:04 瀏覽:50
公司伺服器更換顯卡是什麼意思 發布:2025-01-05 12:03:23 瀏覽:998