c语言编程 输入螺旋数组,C语言 经典题目螺旋矩阵 实例详解
C語言 經(jīng)典題目螺旋矩陣 實(shí)例詳解
C語言 經(jīng)典題目螺旋矩陣
//N階螺旋矩陣
#include
#include
int main()
{
int N,i,j,n,num=1;
int a[10][10]={0};
printf("輸入你要輸出的幾階中斷:");
scanf("%d",&N);
for(n=0;n<=N/2;n++)
{
for(j=n;j<=N-n-1;j++)
a[n][j]=num++;
for(i=n+1;i
a[i][N-n-1]=num++;
for(j=N-n-1;j>n;j--)
a[N-n-1][j]=num++;
for(i=N-n-1;i>n;i--)
a[i][n]=num++;
}
//輸出螺旋矩陣
for(i=0;i
{
for(j=0;j
printf("%2d ",a[i][j]);
printf("\n");
}
system("pause");
return 0;
}
思路是這樣的,剛開始很容易想到順時(shí)針賦值,如下圖為5階:分為四個(gè)方向順時(shí)針賦值。每個(gè)方向負(fù)責(zé)相同數(shù)量的元素。
但這樣,后來發(fā)現(xiàn)當(dāng)N為基數(shù)時(shí),最中心一個(gè)數(shù)不能被賦值。
所以改為還是順時(shí)針賦值,只是->方向多負(fù)責(zé)一個(gè)元素,右| 方向少負(fù)責(zé)一個(gè)元素
最后的運(yùn)行結(jié)果如下圖:
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
時(shí)間: 2016-11-30
問題描述: 統(tǒng)計(jì)一個(gè)矩陣的各列元素之和.矩陣各元素為整數(shù)且絕對值不超過100. 要求輸入: 有多個(gè)測試用例,每個(gè)測試用例的第一行是空格分隔的兩個(gè)正整數(shù)n和m( 1 < n, m < 80 ),接下來的n行每行有m個(gè)空格分隔的整數(shù),組成一個(gè)n*m的矩陣.最后一個(gè)測試用例n=0 m=0不用處理. 要求輸出: 對每個(gè)測試用例,輸出一行整數(shù)(空格分隔),順序表示從第1列至第m列的各列元素之和. 輸入示例: 3 5 1 1 1 2 -1 0 1 0 7 4 0 2 0 -8 -4 2 2 1 1 0 1
趕集網(wǎng)校招就采用了螺旋輸出矩陣作為程序題,要求將矩陣螺旋輸出如: 圖中6*6矩陣線條所示為輸出順序,如果輸出正確的話應(yīng)該輸出1~36有序數(shù)字. ?我想的是這么做的: #include //#define LEN 1 //#define LEN 2 //#define LEN 3 #define LEN 4 void printClock(int a[][LEN]){//輸出函數(shù) int t; int i = 0, m = 0; int j = LEN, n = LEN; w
本文實(shí)例為大家分享了C語言實(shí)現(xiàn)稀疏矩陣的具體代碼,供大家參考,具體內(nèi)容如下 #include "stdio.h" #define maxsize 10 typedef struct { int i,j; //非零元素的行.列 int v; //非零元素的值 }Triple; typedef struct { Triple data[maxsize]; int m,n; //矩陣的行.列 }TSMarix; InitTriple(TSMarix *M) { int i,j,k,v,t;
動(dòng)態(tài)規(guī)劃法 題目描述:給定n個(gè)矩陣{A1,A2....An},其中Ai與Ai+1是可以相乘的,判斷這n個(gè)矩陣通過加括號(hào)的方式相乘,使得相乘的次數(shù)最少! 以矩陣鏈ABCD為例 按照矩陣鏈長度遞增計(jì)算最優(yōu)值 矩陣鏈長度為1時(shí),分別計(jì)算出矩陣鏈A.B.C.D的最優(yōu)值 矩陣鏈長度為2時(shí),分別計(jì)算出矩陣鏈AB.BC.CD的最優(yōu)值 矩陣鏈長度為3時(shí),分別計(jì)算出矩陣鏈ABC.BCD的最優(yōu)值 矩陣鏈長度為4時(shí),計(jì)算出矩陣鏈ABCD的最優(yōu)值 動(dòng)歸方程: 分析: k為矩陣鏈斷開的位置 d數(shù)組存放矩陣鏈計(jì)算的最優(yōu)值,
C語言實(shí)現(xiàn)矩陣翻轉(zhuǎn) 上下翻轉(zhuǎn)與左右翻轉(zhuǎn) 實(shí)例代碼: #include void matrix (int m, int n, int t) { int arr[m][n]; int i, j, k; for (i = 0; i < m; i++){ for (j = 0; j < n; j++){ scanf("%d", &arr[i][j]); } } if (t == 0){//左右翻轉(zhuǎn) for (i = 0; i < m;
1.矩陣相乘 矩陣相乘應(yīng)滿足的條件: (1) 矩陣A的列數(shù)必須等于矩陣B的行數(shù),矩陣A與矩陣B才能相乘: (2) 矩陣C的行數(shù)等于矩陣A的行數(shù),矩陣C的列數(shù)等于矩陣B的列數(shù): (3) 矩陣C中第i行第j列的元素等于矩陣A的第i行元素與矩陣B的第j列元素對應(yīng)乘積之和,即 如: 則: 2. 常用矩陣相乘算法 ??? 用A的第i行分別和B的第j列的各個(gè)元素相乘求和,求得C的第i行j列的元素,這種算法中,B的訪問是按列進(jìn)行訪問的,代碼如下: void arymul(int a[4][5], int b[
本文實(shí)例講述了Java實(shí)現(xiàn)的矩陣乘法.分享給大家供大家參考,具體如下: 思路: 矩陣乘法的前提是:前一矩陣的行數(shù) == 后一矩陣的列數(shù)(rows == cols) 在滿足前提的情況下:前一矩陣的第一行 與 第二個(gè)矩陣的第一列 逐個(gè)相乘.將乘積求和 作為 結(jié)果矩陣的第一個(gè)元素 類推刻得到:結(jié)果矩陣的 第 [row][col] 個(gè)元素 = 前一矩陣的第 row 行 與 后一矩陣的 col列上的元素 逐一相乘 后的乘積之和 代碼及解析: 一.算法剖析: 1.設(shè)置兩個(gè)for循環(huán)用來控制結(jié)果(輸出)矩陣的
一.? np.dot() 1.同線性代數(shù)中矩陣乘法的定義.np.dot(A, B)表示: 對二維矩陣,計(jì)算真正意義上的矩陣乘積. 對于一維矩陣,計(jì)算兩者的內(nèi)積. 2.代碼 [code] import numpy as np # 2-D array: 2 x 3 two_dim_matrix_one = np.array([[1, 2, 3], [4, 5, 6]]) # 2-D array: 3 x 2 two_dim_matrix_two = np.array([[1, 2], [3, 4],
java 矩陣乘法的mapreduce程序?qū)崿F(xiàn) map函數(shù):對于矩陣M中的每個(gè)元素m(ij),產(chǎn)生一系列的key-value對 其中k=1,2.....知道矩陣N的總列數(shù);對于矩陣N中的每個(gè)元素n(jk),產(chǎn)生一系列的key-value對, 其中i=1,2.......直到i=1,2.......直到矩陣M的總列數(shù). map package com.cb.matrix; import stati
本文實(shí)例講述了python實(shí)現(xiàn)矩陣乘法的方法.分享給大家供大家參考.具體實(shí)現(xiàn)方法如下: def matrixMul(A, B): res = [[0] * len(B[0]) for i in range(len(A))] for i in range(len(A)): for j in range(len(B[0])): for k in range(len(B)): res[i][j] += A[i][k] * B[k][j] return res def matrixMul2(A, B):
如何計(jì)算矩陣乘法,這個(gè)大家都知道.通常情況下,我們都是用以下代碼實(shí)現(xiàn)的: 復(fù)制代碼 代碼如下: for(i=0;i
本文實(shí)例講述了C#實(shí)現(xiàn)矩陣乘法的方法.分享給大家供大家參考.具體如下: static double[][] MatrixMultiplication(double[][] matrixOne, double[][] matrixTwo) { int aRows = matrixOne.Length; int aCols = matrixOne[0].Length; int bRows = matrixTwo.Length; int bCols = matrixTwo[0].Length; if
Matrix是Array的一個(gè)小的分支,包含于Array.所以matrix 擁有array的所有特性. 但在數(shù)組乘和矩陣乘時(shí),兩者各有不同,如果a和b是兩個(gè)matrices,那么a*b,就是矩陣積 如果a,b是數(shù)組的話,則a*b是數(shù)組的運(yùn)算 1.對數(shù)組的操作 >>> import numpy as np >>> a=np.array([[1,2,3],[4,5,6],[7,8,9]]) >>> a array([[1, 2, 3], [4, 5, 6]
題目要求 從文件讀入一個(gè)3*3數(shù)組,并計(jì)算每行的平均值. 參考解答 1. 數(shù)據(jù)文件:array.dat 創(chuàng)建一個(gè).dat文件用于存放數(shù)組文件: 1 3 6 2 9 7 3 6 4 文件名隨意啦. 2. 代碼 如果需要計(jì)算行平均值的話改一下avg = (a[i][0] + a[i][1] + a[i][2]) / 3;這行代碼就行了. 太簡單了懶得寫method操作啦: #include void main(){ FILE *fr; int i, j, a[3][3]; flo
本文實(shí)例講述了Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)字典相關(guān)計(jì)算問題.分享給大家供大家參考,具體如下: 問題:在字典上對數(shù)據(jù)執(zhí)行各式各樣的計(jì)算(比如求最小值.最大值.排序). 解決方案:利用zip()將字典的鍵-值對"反轉(zhuǎn)"為值-鍵對序列. 例如:如下字典存放的股票名稱和對應(yīng)的價(jià)格: >>> prices = { 'ACME': 45.23, 'AAPL': 612.78, 'IBM': 205.55, 'HPQ': 37.20, 'FB': 10.75 }
總結(jié)
以上是生活随笔為你收集整理的c语言编程 输入螺旋数组,C语言 经典题目螺旋矩阵 实例详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 借呗剩余欠款再分期是什么意思
- 下一篇: 基金买入时间选择技巧 可以选择股市低迷