联想笔试2011,顺时针输出矩阵

2024-05-04 08:18

本文主要是介绍联想笔试2011,顺时针输出矩阵,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

顺时针打印矩阵

题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。
例如:如果输入如下矩阵:

1              2              3              4

5              6              7              8
9              10             11             12
13             14             15             16
则依次打印出数字1, 2, 3, 4, 8, 12, 16, 15, 14, 13, 9, 5, 6, 7, 11, 10。

这个其实实现起来不难,就是那边边界条件,以及什么时候需要+1换方向的,一不注意就错了,比较辛酸。

#include<stdio.h>
#define N 4void DisplayClockwise( int (*arr)[4] , int n)
{int row=0;int column=0;int direction=0; //0:left->right 1:up->down 2:right->left 3:down->upwhile(direction<16){if((direction++)%4==0){//left->rightwhile( row<n && arr[column][row]!=0 ){printf("%d ",arr[column][row]);arr[column][row]=0;if(row==n-1){break;}else if( arr[column][row+1]!=0)++row;}++column;//why is here ? but not int the "if" inside while()  just think}if((direction++)%4==1){//up->downwhile( column<n && arr[column][row]!=0 ){printf("%d ",arr[column][row]);arr[column][row]=0;if(column==n-1){break;}else if( arr[column+1][row]!=0)++column;}--row;}if((direction++)%4==2){//right->leftwhile( row>-1 && arr[column][row]!=0 ){printf("%d ",arr[column][row]);arr[column][row]=0;if(row==0){break;}else if( arr[column][row-1]!=0)--row;}--column;}if((direction++)%4==3){//down->upwhile( column>-1 && arr[column][row]!=0 ){printf("%d ",arr[column][row]);arr[column][row]=0;if(column==0){break;}else if( arr[column-1][row]!=0)--column;}++row;}}
}int main()
{int arr[N][N];int i;int j;//initalization //try to use less varialblesfor(i=0; i<N; i++)for(j=0; j<N; j++){arr[i][j]=4*i+j+1; //1 2 3...}for(i=0; i<N; i++){for(j=0; j<N; j++){printf("%-3d  ",arr[i][j]);}printf("\n");}DisplayClockwise( arr , N);return 0;
}

这篇关于联想笔试2011,顺时针输出矩阵的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/958738

相关文章

嵌入式软件常见的笔试题(c)

找工作的事情告一段落,现在把一些公司常见的笔试题型整理一下,本人主要是找嵌入式软件方面的工作,笔试的也主要是C语言、数据结构,大体上都比较基础,但是得早作准备,才会占得先机。   1:整型数求反 2:字符串求反,字符串加密,越界问题 3:字符串逆序,两端对调;字符串逆序,指针法 4:递归求n! 5:不用库函数,比较两个字符串的大小 6:求0-3000中含有9和2的全部数之和 7

神经网络第三篇:输出层及softmax函数

在上一篇专题中,我们以三层神经网络的实现为例,介绍了如何利用Python和Numpy编程实现神经网络的计算。其中,中间(隐藏)层和输出层的激活函数分别选择了 sigmoid函数和恒等函数。此刻,我们心中不难发问:为什么要花一个专题来介绍输出层及其激活函数?它和中间层又有什么区别?softmax函数何来何去?下面我们带着这些疑问进入本专题的知识点: 1 输出层概述 2 回归问题及恒等函数 3

C语言中的字符输入/输出和验证输入

在C语言中,字符输入/输出功能允许程序与用户进行交互,读取用户的输入信息并展示输出结果。同时,验证输入的作用在于确保用户输入的数据符合预期,以提高程序的稳定性和可靠性,防止无效输入引发的错误或异常行为,从而提供更好的用户体验。 基础概念 输入(Input):指的是向程序填充数据的过程,通常来源于用户输入、文件读取或其他外部数据源。 输出(Output):指的是将数据显示在屏幕上、打印机上或

JS输出工具

1、alert()弹窗会以文本的格式输出; 2、document.write()输出到页面,会以html的语法解析里面的内容; 3、prompt(“提示文字”,”默认值”)输入框。 alert()弹窗会以文本的格式输出 注意: alert()中英文单双引号不能同时存在。document.write()输出到页面 这个效果跟在body部分加h1标签是一样的。promp

推荐算法之矩阵分解实例

矩阵分解的数据利用的上篇文章的数据,协同过滤 用到的知识 python的surprise k折交叉验证 SVD SVDpp NMF 算法与结果可视化 # 可以使用上面提到的各种推荐系统算法from surprise import SVD,SVDpp,NMFfrom surprise import Datasetfrom surprise import print_perf

江协科技51单片机学习- p16 矩阵键盘

🚀write in front🚀   🔎大家好,我是黄桃罐头,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​  💬本系列哔哩哔哩江科大51单片机的视频为主以及自己的总结梳理📚  前言: 本文是根据哔哩哔哩网站上“江协科技51单片机”视频的学习笔记,在这里会记录下江协科技51单片机开发板的配套视频教程所作的实验和学习

使用matlab的大坑,复数向量转置!!!!!变量区“转置变量“功能(共轭转置)、矩阵转置(默认也是共轭转置)、点转置

近期用verilog去做FFT相关的项目,需要用到matlab进行仿真然后和verilog出来的结果来做对比,然后计算误差。近期使用matlab犯了一个错误,极大的拖慢了项目进展,给我人都整emo了,因为怎么做仿真结果都不对,还好整体的代码都是我来写的,慢慢往下找就找到了问题的来源,全网没有看到多少人把这个愚蠢的错误写出来,我来引入一下。 代码错误的表现:复数向量的虚部被取反,正数变成负数,负数

「学转录组入门生信」第二周来获取表达量矩阵

我们第二周目标有四个: 整理数据RNA-seq格式了解数据质控数据比对read定量 首先,我们得要知道我们在转录组分析过程中会遇到很多格式,建议先通过搜索查找了解这些格式是什么 fasta/fas/fagtf/gffbedsam/bamcsv/tsv/txt 接着,我们会在分析过程中时刻检查我们的数据质量,所以你要尝试回答下面这几个问题 数据质控要在哪个阶段做不同阶段要看什么标准质控有哪

「单细胞转录组系列」如何从稀疏矩阵中提取部分数据进行分析

这一篇文章是回答知识星球中一位星友的提问,她的电脑内存有限,无法直接使用所有数据,只能分析部分数据。 数据来源: https://content.cruk.cam.ac.uk/jmlab/atlas_data.tar.gz 解压缩之后,得到下面数据 数据清单 其中raw_counts.mtx是以稀疏矩阵格式存放的表达量数据,文件为6.5G, 用普通的文本编辑器无法打开,

WGDI之深入理解blockinfo输出结果

blockinfo模块输出文件以csv格式进行存放,共23列,可以用EXCEL直接打开。 block info 其中16列非常容易裂解,描述如下 id 即共线性的结果的唯一标识chr1,start1,end1 即参考基因组(点图的左边)的共线性范围(对应GFF1的位置)chr2,start2,end2 即参考基因组(点图的上边)的共线性范围(对应GFF2的位置)pvalue 即共