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列時,則把下一個數放在上一個數的下面。
-
#include<stdio.h>
- int main()
- {
- int a[100][100],x;/*初始化*/
- int i,j,m,n,temp;
- printf("輸出魔方矩陣n=");
- scanf("%d",&x);
- while(x)
- {
- if(!(x%2))
- {
- printf("你輸入了偶數,很遺憾本程式將退出");
- return 0;
- }
- else
- {
- for(i=0;i<x;i++)
- for(j=0;j<x;j++)
-
a[i][j]=0;
- i=0;
- j=x/2;
- a[i][j]=1;
- for(temp=2;temp<=x*x;temp++)
- {
- m=i;
- n=j;
- i--;
- j++;
- if(i<0)
- i=x-1;
- if(j>=x)
- j=0;
-
if(a[i][j]!=0)
- {
- i=m+1;
- j=n;
- }
- a[i][j]=temp;
- }
- }
- for(i=0;i<x;i++)
- {
- for(j=0;j<x;j++)
- printf("%4d",a[i][j]);
- printf("\n");
- }
- printf("輸出魔方矩陣n=");
- scanf("%d",&x);
- }
- return 0;
- }
相關推薦
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