笔试题&面试题:CW输出矩阵
称号:CW输出矩阵(N*N)。
如果一个矩阵:
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
这个问题在网上也搜集了一下答案,没有什么巧妙的办法,所以以下给出的是全然依照顺时针走向输出的一个代码(自己亲手编写,測试通过):
#include <stdio.h>
#define N 5 //矩阵的维度 void clockwise_matrix(int matrix[][N])
{
int starta = 0, startc = 0, enda = N-1, endc = N-1;
int array, column, i; while(1) {
for(i = 0; startc+i <= endc; i++) { //横向递增
printf("%3d ", matrix[starta][startc+i]);
}
if(starta < enda) { //这个推断是为了使矩阵剩余的部分仅仅剩下一行的时候的特殊情况处理
for(i = 1; starta+i <= enda; i++) { //竖向递增
printf("%3d ", matrix[starta+i][endc]);
}
for(i = 1; endc-i >= startc; i++) { //横向递减
printf("%3d ", matrix[enda][endc-i]);
}
for(i = 1; enda-i > starta; i++) { //竖向递减
printf("%3d ", matrix[enda-i][startc]);
}
} starta ++;
startc ++;
enda --;
endc --;
if(starta > enda) {
break;
}
}
} int main()
{
int i, j;
int matrix[N][N]; for(i = 0; i < N; i++) //给測试数组赋值
for(j = 0; j < N; j++) {
matrix[i][j] = i*N + j;
} printf("The test matrix is :\n"); //打印出測试数组
for(i = 0; i < N; i++) {
for(j = 0; j < N; j++) {
printf("%3d ", matrix[i][j]);
}
printf("\n");
}
printf("\n");
clockwise_matrix(matrix);
printf("\n");
return 0;
}
以下是程序在ubuntu下执行的结果(程序中的维度能够改动。自己測试过1~7没有问题):
版权声明:本文博客原创文章。博客,未经同意,不得转载。
笔试题&面试题:CW输出矩阵的更多相关文章
- python 按位置关系输出矩阵元素
描述:依次输出矩阵中最近邻的元素 例如:输入: [[1, 2, 3] [4, 5, 6] [7, 8, 9]] 输出: [[ 1. 2. 4. 5. 3. 6. 7. 8. 9.] [ ...
- 测试基础面试题 + SQL 面试题(选择题有部分答案,难度:低)
测试基础面试题 + SQL 面试题(选择题有部分答案,难度:低) 答案: .A .C .C .A .A .D
- php开发面试题---日常面试题1
php开发面试题---日常面试题1 一.总结 一句话总结: 实战确定学习方向,然后去网上找视频资源,非常多,然后看书 1.什么样的数据存在memcache里面? 要去数据库里面查询的那些数据,数据库查 ...
- php开发面试题---vue面试题(vue.js的好处及作用)
php开发面试题---vue面试题(vue.js的好处及作用) 一.总结 一句话总结: 双向数据绑定:在做ajax的时候,更新实在是太方便了 用数据绑定的思想,vue可以简单写单个页面,也可以写一个大 ...
- php开发面试题---php面试题英语(How do you debug a PHP application)
php开发面试题---php面试题英语(How do you debug a PHP application) 一.总结 一句话总结: xdebug or use die() do it; 1.Whi ...
- python如何输出矩阵的行数与列数?
Python如何输出矩阵的行数与列数? 对于pyhton里面所导入或者定义的矩阵或者表格数据,想要获得矩阵的行数和列数有以下方法: 1.利用shape函数输出矩阵的行和列 x.shape函数可以输出一 ...
- 笔试题&面试题:输入一个维度,逆时针打印出一个指定矩阵
称号:考虑到用户层面.打印出指定的矩阵,例如,一个给定的用户10,例如,下面的输出应被视为在图: 程序如下所示: #include <stdio.h> #include <mallo ...
- 笔试题&面试题:找出一个数组中第m小的值并输出
题目:找出一个数组中第m小的值并输出. 代码: #include <stdio.h> int findm_min(int a[], int n, int m) //n代表数组长度,m代表找 ...
- 面试题。线程pingpong的输出问题
第一种情况:public class Main { public static void main(String args[]) { Thread t = new Thread() { public ...
随机推荐
- 用命令行在github新建一个项目
Github Repository API中说明了可以通过发送一个请求来认证,之后就能通过命令行自动新建远程仓库了. 认证 curl -u 'username' https://api.github. ...
- NSIS常用代码整理
原文 NSIS常用代码整理 这是一些常用的NSIS代码,少轻狂特意整理出来,方便大家随时查看使用.不定期更新哦~~~ 1 ;获取操作系统盘符 2 ReadEnvStr $R0 SYSTEMDRIVE ...
- 安装Docker
安装Docker 1. 增加Repository配置文件 cat >/etc/yum.repos.d/docker.repo <<-EOF [dockerrepo]name=Dock ...
- JavaEE(14) - JPA关联映射
1. 单向N-1关联映射 2. 单向1-1关联映射 3. 单向1-N关联映射 4. 单向N-N关联映射 5. 双向1-1关联映射 6. 双向1-N关联映射 7. 双向N-N关联映射 1. 单向N-1关 ...
- 【iOS】多线程GCD
GCD(Grand Central Dispatch) : 牛逼的中枢调度器.苹果自带,纯C语言实现,提供了许多且强大的函数,它能够提高代码的运行效率与多核的利用率. 一.GCD的基本使用 1.GCD ...
- SpringMVC现实
夹 一个.前言 两.spring mvc 核心类和接口 三.spring mvc 核心流程图 四.spring mvc DispatcherServlet说明 五.spring mvc 父子上下文的说 ...
- seaJs组建库
seaJs组建库的使用 原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以 ...
- nodejs安装:nodejs入门
nodejs开篇 前几天看到好多关于node 的帖子没有单独说明node安装的文章~ 特发此篇 总结一下平时在windows上nodejs的安装... 1.js来搞前后端分离是nodejs的一大特点, ...
- 大数据系列修炼-Scala课程08
接下来会讲解关于各种模式匹配,从中就会知道模式匹配的重要性 关于Type.Array.List.Tuple模式解析 1.Type模式匹配代码解析 //关于Type类型的模式匹配 //匹配 Int类型. ...
- Java得到的一周的最后一天的一段时间内
Java得到的一周的最后一天的一段时间内 1.设计源代码 LastDayOfWeek.java: /** * @Title:LastDayOfWeek.java * @Package:com.you. ...