1. 程式人生 > >C/C++小程式學習:n*n魔方矩陣實現每行、每列、每一對角線上的元素之和相等

C/C++小程式學習:n*n魔方矩陣實現每行、每列、每一對角線上的元素之和相等

用一個程式實現n*n魔方矩陣中,每一行、每一列、每一對角線上的元素之和相等。

矩陣規律:

本程式只適合基數,解釋如下:
 N 為奇數時,此題中N設為5
(1) 將1放在第一行中間一列;   
(2) 從2開始直到n×n止各數依次按下列規則存放:   
按 45°方向行走,如向右上   
每一個數存放的行比前一個數的行數減1,列數加1   
(3) 如果行列範圍超出矩陣範圍,則迴繞。   
例如1在第1行,則2應放在最下一行,列數同樣加1;   
(4) 如果按上面規則確定的位置上已有數,或上一個數是第1行第n列時,則把下一個數放在上一個數的下面

  1. #include<stdio.h>
  2. int main()  
  3. {  
  4. int a[100][100],x;/*初始化*/
  5. int i,j,m,n,temp;  
  6. printf("輸出魔方矩陣n=");  
  7. scanf("%d",&x);  
  8. while(x)  
  9. {  
  10.     if(!(x%2))  
  11.     {  
  12.         printf("你輸入了偶數,很遺憾本程式將退出");  
  13.         return 0;  
  14.     }  
  15.     else
  16.     {  
  17.         for(i=0;i<x;i++)  
  18.             for(j=0;j<x;j++)  
  19.                 a[i][j]=0;  
  20.         i=0;  
  21.         j=x/2;  
  22.         a[i][j]=1;  
  23.         for(temp=2;temp<=x*x;temp++)  
  24.         {  
  25.             m=i;  
  26.             n=j;  
  27.             i--;  
  28.             j++;  
  29.             if(i<0)  
  30.                 i=x-1;  
  31.             if(j>=x)  
  32.                 j=0;  
  33.             if(a[i][j]!=0)  
  34.             {  
  35.                 i=m+1;  
  36.                 j=n;  
  37.             }  
  38.             a[i][j]=temp;  
  39.         }  
  40.     }  
  41.     for(i=0;i<x;i++)  
  42.     {  
  43.         for(j=0;j<x;j++)  
  44.         printf("%4d",a[i][j]);  
  45.         printf("\n");  
  46.     }  
  47.     printf("輸出魔方矩陣n=");  
  48.     scanf("%d",&x);  
  49.     }  
  50.     return 0;  
  51. }  

相關推薦

C/C++程式學習n*n魔方矩陣實現對角線上元素之和相等

用一個程式實現n*n魔方矩陣中,每一行、每一列、每一對角線上的元素之和相等。 矩陣規律: 本程式只適合基數,解釋如下:  N 為奇數時,此題中N設為5 (1) 將1放在第一行中間一列;    (2) 從2開始直到n×n止各數依次按下列規則存放:   按 45°方向行走

程式學習變數作用域

app.js,增加一行全域性變數定義,globalvar: 1: globalData: { userInfo: null, globalvar: 1 } index.j

程式學習點選按鈕修改標籤文字內容

簡單修改2個自動生成的模板檔案即可。 1、修改index.wxml: 增加: <button bindtap='changeMotto'>點選</button> 2、

微信程式學習location API介面

微信小程式的位置介面共有兩個: 1、wx.getLocation(OBJECT)獲取當前的地理位置、速度。 2、wx.openLocation(OBJECT) 使用微信內建地圖檢視位置 然後,根據object引數說明,結合module模組化重寫了下兩個介面在暴露出來引用,讓

1微信程式學習基本控制元件的使用

最近公司app客戶端沒有新的需求了,接下來的工作任務是學習微信小程式的開發,先從最基本的控制元件開始學習。 一、檢視容器 1、view的使用 wxml檔案中的程式碼: //建立一個view,class='style'是引用wxss檔案中的樣式

微信程式開發實時圓形進度條實現

第九程式給大家帶來微信小程式開發:實時圓形進度條實現,希望大家在開發小程式過程中能夠幫助大家解決。 廢話不多說,先上一張效果圖! 實現思路 建立兩個canvas標籤,先繪製底層的淺灰色圓圈背景,再繪製上層的紅色進度條。 WXML程式碼              開始動

C#程式設計基礎第四課2使用if語句if-else語句多重if語句巢狀if語句完成的C#控制檯程式

知識點:基本算術運算、簡單if語句、if-else語句的練習。利用語句完成簡單C#控制檯程式。 1、運用if-else語句,判斷使用者輸入的年份是否是閏年 static void Main(string[] args) { /*

C語言程式找出100以內素數

C語言 #include<stdio.h> int main() {  int i = 0;int j = 0;int t = 1;for(i = 2;i <= 100;i++){f

每日訓練之程式設計程式 1 統計1~n有多少個9 (註釋已補)

        在經過一段時間的預習之後,開始了這個學期的第一次程式設計,在正式寫上程式之前,先分析下我的思路。        在剛開始的時候,是想法上的錯誤,誤把題目理解為了求1~n有多少個9的倍數,導致結果出現偏差。        後來我準備通過對每個數先從個位開始檢測是

C語言/C++編程學習棧的代碼實現之數組方案

代碼 好的 構造 一起 判斷 處理 解決 not 思想 C語言是面向過程的,而C++是面向對象的 C和C++的區別: C是一個結構化語言,它的重點在於算法和數據結構。C程序的設計首要考慮的是如何通過一個過程,對輸入(或環境條件)進行運算處理得到輸出(或實現過程(事務)控制)

程式學習記錄讀取discuz生成的json資料

  在discuz後臺資料庫中建表,testjson,並輸入兩條記錄: testjson.php: <?php if(!defined('IN_DISCUZ')) { exit('Access Denied'); } header("Content-Typ

程式學習筆記程式百度地圖例子的執行

  微信的小程式結構升級很快,百度的小程式demo不能直接運行了。 首先下載小程式——百度地圖的例子。https://github.com/baidumapapi/wxapp-jsapi 1、設定微信公眾平臺——小程式——設定——開發設定。 修改伺服器域名,reques

微信程式——學習筆記(二)邏輯層(1)

邏輯層將資料進行處理後傳送給檢視層,同時接受檢視層的事件反饋。 用App()函式註冊一個小程式。 當小程式初始化完成時,會觸發 onLaunch(全域性只觸發一次) 當小程式啟動,或從後臺進入前臺顯示,會觸發 onShow 當小程式從前臺進入後臺,會觸發 onHide 當小程式發生指令碼錯

微信程式——學習筆記(json

json配置檔案—— 1> app.json:作用於整個小程式全域性配置   頁面路徑——page(陣列[字串="路徑+檔名"])      "pages":["pages/index/index","pages/log/index"]

程式學習之路二開發工具部分功能和專案結構介紹

上一篇講到了新建專案進來,本篇主要講解開發工具部分功能和專案結構介紹,按照我的風格來,先上目錄 開發工具的部分功能簡介 小程式專案目錄簡介 以下幾個功能是我覺得比較方便喜歡的 自動儲存(設定----編輯設定-----選中修改檔案時自動儲存) console(控

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

程式學習筆記迴圈陣列並顯示內容

使用上一篇中的條件渲染框架。 index.js: //index.js //獲取應用例項 const app = getApp() Page({ data: { boolean: fa

程式學習記錄顯示陣列內容2

index.js: //index.js //獲取應用例項 const app = getApp() Page({ data: { arr: [{ text: "青青園中葵" },

C++入門程式練習

初識C++,向大家介紹幾個我用來做練習編寫的幾道小程式,都是C++Primer上面的練習題,分享給大家。eg1:編寫程式,使用遞減運算子在迴圈中按遞減順序打印出10到1之間的整數。程式碼如下:#include<iostream> #include<cstdl

程式學習之路注意事項統計

這篇文章記載在小程式的一些注意事項和遇到的bug,包括解決方案 子控制元件點選事件和父控制元件之間的傳遞 當一個view裡面包裹了了一個子view(如text控制元件),然後兩個控制元件都新增點選事件,如何讓點選text的時候父view的點選事件不觸發呢?  在點選事件t