幻方的實現,矩陣每行每列每個對角線之和相等
作者: 徐權
完成日期:20150721
函式功能:幻方功能的實現(每行每列每個對角線的和是相等的)
*************************************************************************************/
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define N 10 //下面有手動輸入函式,如果使用,請將這條程式碼註釋,下面scanf()函式程式碼啟用,預設N為10
int main()
{
int **huanfang;
int i, j;
int count = 1;
//手動輸入呼叫函式
//int N;
//puts("請輸入幻方矩陣的邊寬:");
//scanf_s("%d", &N); //VS2013及以上平臺手動輸入函式呼叫
//scanf("%d", &N); //VC++6.0 等C89的標準庫呼叫函式,linux c99呼叫也可以
huanfang = (int **)malloc(sizeof(int *)*N);
for (i = 0; i < N; i++)
{
huanfang[i] = (int *)malloc(sizeof(int)*N);
}
if (huanfang == NULL)
{
puts("記憶體開闢失敗!!");
}
for ( i = 0; i < N; i++)
{
for (j = 0; j < N; j++)
{
huanfang[i][j] = 0;
printf("%5d ",huanfang[i][j]);//設定的數字寬度為5
}
printf("\n");
}
printf("askjdfjashfasgsdg\n");
i = 0;
j = (int)(N + 1) / 2;
while (1)
{
if (huanfang[i][j] == 0)
{
huanfang[i][j] = count;
i = (i + 1) % N;
j =(abs (j + N - 1)) % N;
count++;
}
else
{
i = (abs(i + N - 1)) % N;
j = (j + 2) % N;
huanfang[i][j] = count;
i = (i + 1) % N;
j = (abs(j + N - 1)) % N;
count++;
}
if (count == (N*N+1))
{
break;
}
}
for (i = 0; i < N; i++)
{
for (j = 0; j < N; j++)
{
printf("%5d ", huanfang[i][j]);//設定的數字寬度為5
}
printf("\n");
}
system("pause");
return 0;
}
沒有優化,歡迎批評和討論
相關推薦
幻方的實現,矩陣每行每列每個對角線之和相等
/************************************************************************************ 作者: 徐權 完成日期:20150721 函式功能:幻方功能的實現(每行每列每個對角線的和是相等的)
Python中找出陣列或者矩陣每行/每列中個數最多的成員,及出現的次數
在Python中,我們可以用scipy.stats.mode函式尋找陣列或者矩陣每行/每列中最常出現成員以及出現的次數 。 from scipy.stats import mode def mode(a, axis=0, nan_policy='propagate'
查詢每個學生每門課程的成績,sql server行轉列實現
本人經常寫sql server指令碼,有時需要行轉列,這裡做個筆記。 練習指令碼 -- 學生表 CREATE TABLE student ( stuid VARCHAR(16) NOT NULL, stunm VARCHAR(20) NOT NULL, PRI
C/C++小程式學習:n*n魔方矩陣實現每行、每列、每一對角線上的元素之和相等
用一個程式實現n*n魔方矩陣中,每一行、每一列、每一對角線上的元素之和相等。 矩陣規律: 本程式只適合基數,解釋如下: N 為奇數時,此題中N設為5 (1) 將1放在第一行中間一列; (2) 從2開始直到n×n止各數依次按下列規則存放: 按 45°方向行走
1-9,九個數填入3*3的格子中,使每行每列總和相同
#include <iostream> using namespace std; int a[3][3]; int sum; //判斷九宮格內每個數字各不相同 bool test(int x,int y,int n){ a[x][y]=n;
c++二維指針求每行每列次大值
cs6 tor ++ mwl docs cst sdi log wem bdvfqu男孟言林塵躥http://shufang.docin.com/sina_6367437306ndhoh0慕忠押悶紊儔http://jz.docin.com/xfhmr75774f9xm1c滔
獲取table表格每行每列的資料 (橫向遍歷)
線上展示 F12開啟開發人員工具檢視console內容 表格資料: 獲取表格每行每列資料: html: <form id="form1"> <div>
從三層迴圈到標準實現,矩陣相乘執行效率提高千倍之路
## 前言 矩陣乘法可以說是最常見的運算之一。 本文介紹不同的方式實現的矩陣乘法,並比較它們執行速度的差異。 表示矩陣的方式有很多種,完善的矩陣類應該實現切片取值,獲得矩陣形狀等操作,但本文並不打算直接從原生Python實現一個矩陣類,而是直接用 Pytorch中的tensor表示矩陣。 ## 開始:
Oracle 動態SQL實現SQL查詢子集行轉列
引言 我們都知道Oracle的Pivot的In()裡是不能跟SQL查詢語句的,必須是已知的字串結果,然而我專案中遇到的需求這個In 並不是靜態的,而是根據我傳遞的條件來篩選,一開始想的是解析XML,可惜轉為XML之後,有相同的重複的節點,解析太麻煩,於是想通過
matlab將矩陣按行和列儲存到txt中
c為待儲存的矩陣,將c按行和列儲存到saif.txt中。 row=size(c,1); col=size(c,2); fid=fopen(['saif.txt'],'wt'); for i=1:row for j=1:col fprintf(fid,'%g ',c(i,j)); end fpri
//輸出9*9口訣 //程式分析:分列與行考慮,共9行9列,i控制行,j控制列;
//輸出9*9口訣//程式分析:分列與行考慮,共9行9列,i控制行,j控制列;#include <stdio.h>main(){ int i,j,result; printf("\n");
//楊氏矩陣 有一個二維陣列. 陣列的每行從左到右是遞增的,每列從上到下是遞增的. 在這樣的陣列中查詢一個數字是否存在。
//楊氏矩陣 有一個二維陣列. 陣列的每行從左到右是遞增的,每列從上到下是遞增的. 在這樣的陣列中查詢一個數字是否存在。 時間複雜度小於O(N); 我用一個while迴圈實現了該要求 #include <stdio.h> #include <windows.h>
【C語言】對一個n*n矩陣,通過行變換,使其每行元素的平均值按遞增順序排序
#include<stdio.h> int main() { int n,a[100][100],r,c,i,j; scanf("%d",&n); for(i=0;i<n;i++) { for(j=0;j<n;j++) scanf("%d",&am
微信小程式實現View子節點每行固定顯示數目,多出來自動換行
需求是這樣的: 需要根據後臺傳入的資料動態生成view控制元件,固定每行展示三個,多出來的自動換行。 如果用js來寫想必比較簡單,由於接觸微信小程式時間不算太長,對於前端的一些寫法難免運用不是很熟練。 這是我的目錄結構: 相關的思路我已經在程
//楊氏矩陣 有一個二維陣列. 陣列的每行從左到右是遞增的,每列從上到下是遞增的. 在這樣的陣列中查詢一個數字是否存在
題目: //楊氏矩陣 有一個二維陣列. 陣列的每行從左到右是遞增的,每列從上到下是遞增的. 在這樣的陣列中查詢一個數字是否存在。 時間複雜度小於O(N); 陣列: 1 2 3 2 3 4
楊氏矩陣 //有一個二維陣列. //陣列的每行從左到右是遞增的,每列從上到下是遞增的. //在這樣的陣列中查詢一個數字是否存在。 //時間複雜度小於O(N);
//陣列: //1 2 3 //2 3 4 //3 4 5 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdlib.h> #include <stdio.h> int search(int a
編寫分數類Fraction,實現兩個分數的加、減、乘和除四則運算。主函式已給定。輸入 每行四個數,分別表示兩個分數的分子和分母,以0 0 0 0 表示結束。 輸出 空格分隔的兩個分數的減和除的結果。
#include <iostream.h> int cishu=1; class Fraction {public: Fraction(){a=0;b=0;} Fraction(int x,int y
設M 是一個m×n 的矩陣,其中每行的元素從左到右單增有序,每列的元素從上到下單增有序。 給出一個分治演算法計算出給定元素x 在M 中的位置或者表明x 不在M 中。分析演算法的時間複雜性。
#include "stdio.h" int M[5][5]= { { 1, 2, 3, 4, 5}, { 6, 7, 8, 9,10}, {11,12,13,14,15}, {16,17,18,19,20}, {21,22,23,24,25} }; int x=
楊氏矩陣(二維數組的每行從左到右是遞增的,每列從上到下是遞增的. 在這樣的數組中查找一個數字)
row stdio.h 線性 數字 %d scan -- else if for 題目要求時間復雜度小於O(N) #include<stdio.h> int find(int arr[][3], int *px, int *py,int key) {
點滴積累方有為,每步思索可致遠(三)
沒有 整數 adc cci 物料 and internet fin http 填空題: 1、用一個字節最多能編出______不同的碼。 2、90283轉換成8進制是___________,16進制是_________________ 3、如下圖:A到F最短的路徑是_