C语言 经典题目螺旋矩阵 实例详解

C语言 经典题目螺旋矩阵

//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;

}

思路是这样的,刚开始很容易想到顺时针赋值,如下图为5阶:分为四个方向顺时针赋值。每个方向负责相同数量的元素。

但这样,后来发现当N为基数时,最中心一个数不能被赋值。

所以改为还是顺时针赋值,只是->方向多负责一个元素,右| 方向少负责一个元素

最后的运行结果如下图:

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

时间: 2016-11-30

问题描述: 统计一个矩阵的各列元素之和.矩阵各元素为整数且绝对值不超过100. 要求输入: 有多个测试用例,每个测试用例的第一行是空格分隔的两个正整数n和m( 1 < n, m < 80 ),接下来的n行每行有m个空格分隔的整数,组成一个n*m的矩阵.最后一个测试用例n=0 m=0不用处理. 要求输出: 对每个测试用例,输出一行整数(空格分隔),顺序表示从第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

赶集网校招就采用了螺旋输出矩阵作为程序题,要求将矩阵螺旋输出如: 图中6*6矩阵线条所示为输出顺序,如果输出正确的话应该输出1~36有序数字.  我想的是这么做的: #include //#define LEN 1 //#define LEN 2 //#define LEN 3 #define LEN 4 void printClock(int a[][LEN]){//输出函数 int t; int i = 0, m = 0; int j = LEN, n = LEN; w

本文实例为大家分享了C语言实现稀疏矩阵的具体代码,供大家参考,具体内容如下 #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;

动态规划法 题目描述:给定n个矩阵{A1,A2....An},其中Ai与Ai+1是可以相乘的,判断这n个矩阵通过加括号的方式相乘,使得相乘的次数最少! 以矩阵链ABCD为例 按照矩阵链长度递增计算最优值 矩阵链长度为1时,分别计算出矩阵链A.B.C.D的最优值 矩阵链长度为2时,分别计算出矩阵链AB.BC.CD的最优值 矩阵链长度为3时,分别计算出矩阵链ABC.BCD的最优值 矩阵链长度为4时,计算出矩阵链ABCD的最优值 动归方程: 分析: k为矩阵链断开的位置 d数组存放矩阵链计算的最优值,

C语言实现矩阵翻转 上下翻转与左右翻转 实例代码: #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){//左右翻转 for (i = 0; i < m;

1.矩阵相乘 矩阵相乘应满足的条件: (1) 矩阵A的列数必须等于矩阵B的行数,矩阵A与矩阵B才能相乘: (2) 矩阵C的行数等于矩阵A的行数,矩阵C的列数等于矩阵B的列数: (3) 矩阵C中第i行第j列的元素等于矩阵A的第i行元素与矩阵B的第j列元素对应乘积之和,即 如: 则: 2. 常用矩阵相乘算法     用A的第i行分别和B的第j列的各个元素相乘求和,求得C的第i行j列的元素,这种算法中,B的访问是按列进行访问的,代码如下: void arymul(int a[4][5], int b[

本文实例讲述了Java实现的矩阵乘法.分享给大家供大家参考,具体如下: 思路: 矩阵乘法的前提是:前一矩阵的行数 == 后一矩阵的列数(rows == cols) 在满足前提的情况下:前一矩阵的第一行 与 第二个矩阵的第一列 逐个相乘.将乘积求和 作为 结果矩阵的第一个元素 类推刻得到:结果矩阵的 第 [row][col] 个元素 = 前一矩阵的第 row 行 与 后一矩阵的 col列上的元素 逐一相乘 后的乘积之和 代码及解析: 一.算法剖析: 1.设置两个for循环用来控制结果(输出)矩阵的

一.  np.dot() 1.同线性代数中矩阵乘法的定义.np.dot(A, B)表示: 对二维矩阵,计算真正意义上的矩阵乘积. 对于一维矩阵,计算两者的内积. 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程序实现 map函数:对于矩阵M中的每个元素m(ij),产生一系列的key-value对 其中k=1,2.....知道矩阵N的总列数;对于矩阵N中的每个元素n(jk),产生一系列的key-value对, 其中i=1,2.......直到i=1,2.......直到矩阵M的总列数. map package com.cb.matrix; import stati

本文实例讲述了python实现矩阵乘法的方法.分享给大家供大家参考.具体实现方法如下: 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):

如何计算矩阵乘法,这个大家都知道.通常情况下,我们都是用以下代码实现的: 复制代码 代码如下: for(i=0;i

本文实例讲述了C#实现矩阵乘法的方法.分享给大家供大家参考.具体如下: 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的一个小的分支,包含于Array.所以matrix 拥有array的所有特性. 但在数组乘和矩阵乘时,两者各有不同,如果a和b是两个matrices,那么a*b,就是矩阵积 如果a,b是数组的话,则a*b是数组的运算 1.对数组的操作 >>> import numpy as np >>> a=np.array([[1,2,3],[4,5,6],[7,8,9]]) >>> a array([[1, 2, 3], [4, 5, 6]

题目要求 从文件读入一个3*3数组,并计算每行的平均值. 参考解答 1. 数据文件:array.dat 创建一个.dat文件用于存放数组文件: 1 3 6 2 9 7 3 6 4 文件名随意啦. 2. 代码 如果需要计算行平均值的话改一下avg = (a[i][0] + a[i][1] + a[i][2]) / 3;这行代码就行了. 太简单了懒得写method操作啦: #include void main(){ FILE *fr; int i, j, a[3][3]; flo

本文实例讲述了Python cookbook(数据结构与算法)字典相关计算问题.分享给大家供大家参考,具体如下: 问题:在字典上对数据执行各式各样的计算(比如求最小值.最大值.排序). 解决方案:利用zip()将字典的键-值对"反转"为值-键对序列. 例如:如下字典存放的股票名称和对应的价格: >>> prices = { 'ACME': 45.23, 'AAPL': 612.78, 'IBM': 205.55, 'HPQ': 37.20, 'FB': 10.75 }

c语言编程 输入螺旋数组,C语言 经典题目螺旋矩阵 实例详解相关推荐

  1. C语言编程输入动态数组,C语言完美实现动态数组代码分享

    我们知道,C语言中的数组大小是固定的,定义的时候必须要给一个常量值,不能是变量. 这带来了很大的不便,如果数组过小,不能容下所有数组,如果过大,浪费资源. 请实现一个简单的动态数组,能够随时改变大小, ...

  2. c语言编程步骤Vision4,【2017年整理】keil_μVision4使用详解教程.pdf

    [2017年整理]keil_μVision4使用详解教程 Keil μVision4 使用详解 zxmh6 前言 单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为 CPU 可以 ...

  3. c语言自动输入新数组,c语言 向有序数组中插入一个数,保持原顺序不变,将新数组输出...

    #include"stdafx.h" #include intmain() { intm,n,i,j,h; inta[17]={1,5,9,14,23,34,45,56,67,78 ...

  4. 单片机c语言编程编码器数值,基于单片机的光电编码器测速报告详解.doc

    课程设计报告 课程名称: 微机原理课程设计 题 目: 基于51单片机的光电编码器测速 摘要 光电编码器是高精度位置控制系统常用的一种位移检测传感器.在位置控制系统中,由于电机既可能正转,也可能反转,所 ...

  5. C语言编程johnson算法,基于稀疏图上的Johnson算法的详解

    #include #include #define U    65535 #define PARENT(i)    ((i-1)/2) #define LEFT(i)        (2*(i)+1) ...

  6. c 语言中双向链表逆转编程题,C/C++ 双链表之逆序的实例详解

    C/C++ 双链表之逆序的实例详解 一.结点结构 双向链表的数据结构定义如下: typedef struct node { ElemType data; struct node *prior stru ...

  7. android平台下OpenGL ES 3.0实例详解顶点属性、顶点数组

    OpenGL ES 3.0学习实践 android平台下OpenGL ES 3.0从零开始 android平台下OpenGL ES 3.0绘制纯色背景 android平台下OpenGL ES 3.0绘 ...

  8. C 语言编程 — 输入/输出与文件操作

    目录 文章目录 目录 前文列表 输入/输出 scanf() 和 printf() getchar() 和 putchar() 文件操作 打开文件 关闭文件 写入文件 读取文件 二进制 I/O 函数 前 ...

  9. c语言中计算一个字母的序数,C语言编程 输入一串字符统计英文字母的个数

    C语言编程:输入一行字符,至少50个,统计其中英文字母,数字,其他字母个数 楼上那个不能统计空格个数,我这个可以#include#includeintmain(){intcnt_c=0,cnt_n=0 ...

最新文章

  1. windows 7作为微软对抗Google的秘密武器
  2. 检正email的格式
  3. windows 虚拟地址映射到物理地址
  4. 单例模式【SingletonPattern】
  5. CF1534F:Falling Sand(tarjan、贪心、dp)
  6. 发电厂电气部分第三版pdf_火力发电厂电气主接线的特点
  7. 学习ecshop 教程网址
  8. CV新赛事 | 水下鱼类物种识别
  9. (三)用于构建AI语言翻译系统的工具
  10. 为什么很多创业者选择餐饮行业?
  11. 中文版开源!这或许是最经典的 Python 编程教材
  12. Flutter视图基础简介--Widget、Element、RenderObject
  13. Linux 网络编程 常用socket函数详解 常用的函数讲解
  14. Wondershare Recoverit for Mac(数据恢复套件)
  15. 主要厂商在大数据领域的布局状况
  16. Linux Bash严重漏洞修复紧急通告
  17. HTML中包含地图和筛选条件,如何实现DedeCMS多条件筛选并以筛选词为标题
  18. c语言程序设计实验指导实验十二,C语言程序设计实验指导
  19. CST微波工作室学习笔记—14.天线设计实例
  20. [转]Selenium html之于ul标志代码分析与使用

热门文章

  1. 一个base.css
  2. Kettle使用_20 笛卡尔积与前一行后一行Lead Lag
  3. 机器学习中用到的概率知识_机器学习中有关概率论知识的小结
  4. python给变量赋值范围_关于lambda:在Python中将变量赋值给本地函数范围
  5. solver.prototxt参数说明(三)
  6. cannot import caffe
  7. 阿里云MVP闪亮云栖大会,技术干货持续更新中
  8. 《Adobe Illustrator CS5中文版经典教程》—第0课0.5节使用绘图模式
  9. vs2013update4 vs-mda-remote cordova真机测试ios
  10. tensorflow中的正则化解决过拟合问题