题目:逆时针打印矩阵元素

#include <stdio.h>
#include <malloc.h> int main()
{
int dimension;
int *p;
int startx, starty, endx, endy;
int i, j, value = ; printf("Please input dimension:");
scanf("%d", &dimension);
p = (int *)malloc(sizeof(int)*dimension*dimension);
startx = ;
starty = ;
endx = dimension - ;
endy = dimension - ; while(startx <= endx)
{
if(startx == endx) //只剩一个点需要赋值
{
p[endy*dimension+endx] = value++;
break;
}
for(i = starty, j = startx; i <= endy; i++) //从上到下
{
p[i*dimension+j] = value ++;
} for(i-=, j = startx+; j <= endx; j++) //从左到右, i在从上到下的输入中已经超出了矩阵范围,所以需要减1
{
p[i*dimension+j] = value++;
} for(j-=, i -= ; i >= starty; i--) //从下到上
{
p[i*dimension+j] = value++;
} for(i+=, j -= ; j > starty; j--) //从右到左
{
p[i*dimension+j] = value++;
} startx ++;
starty ++;
endx --;
endy --;
} for(i = ; i < dimension*dimension; i++)
{
if( == i%dimension)
printf("\n");
printf("%3d ", p[i]);
}
printf("\n\n"); return ;
}

运行效果如下:

本文主要参考:http://blog.csdn.net/laoniu_c/article/details/38085767

一道c++面试题 输入一个维度,逆时针打印出一个指定的矩阵的更多相关文章

  1. 笔试题&amp;面试题:输入一个维度,逆时针打印出一个指定矩阵

    称号:考虑到用户层面.打印出指定的矩阵,例如,一个给定的用户10,例如,下面的输出应被视为在图: 程序如下所示: #include <stdio.h> #include <mallo ...

  2. 如何用一个for循环打印出一个二维数组

    思路分析: 二维数组在内存中默认是按照行存储的,比如一个二维数组{{1,2,3,},{4,5,6}},它在内存中存储的顺序就是1.2.3.4.5.6,也就是说,对于这6个数组元素,按照从0到5给它们编 ...

  3. scala基础题--函数可以没有返回值案例,编写一个函数,从终端输入一个整数,打印出对应的金字塔

    函数可以没有返回值案例,编写一个函数,从终端输入一个整数,打印出对应的金字塔 import scala.io.StdIn object work02 { def main(args: Array[St ...

  4. 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。

    题目描述 输入一个字符串,按字典序打印出该字符串中字符的所有排列.例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba. 输入描述: 输 ...

  5. java用星星符号打印出一个直角三角形

    package debug; public class Demo10 { public static void main(String[] args) { //用星星符号打印出一个直角三角形 for( ...

  6. python脚本3_输入若干个整数打印出最大值

    #输入若干个整数,打印出最大值 # m = int(input('Input first number >>>')) while True: c = input('Input a n ...

  7. 简单编程:如何用java来打印出一个5行的三角形

  8. python 输入一个字符串,打印出它所有的组合

    import itertools str = input('请输入一个字符串:') lst = [] for i in range(1, len(str)+1): lst1 = [''.join(x) ...

  9. java输入一个字符串,打印出该字符串中字符的所有排列,随机打乱排序

    import java.util.ArrayList;import java.util.Collections;import java.util.List; public class Test7{   ...

随机推荐

  1. 網管利器!開源管理系統-LibreNMS

    https://www.4rbj4.com/442 https://www.ichiayi.com/wiki/tech/librenms

  2. 将Elasticsearch的快照备份到HDFS

    1.安装Elasticsearch插件repository-hdfs 下载地址:https://artifacts.elastic.co/downloads/elasticsearch-plugins ...

  3. 【BZOJ1417】Pku3156 Interconnect

    题解: 比较简单的一道题 显然我们只需要知道每个联通块的大小就可以了 然后发现x1+xn=30 其中xi<=xi+1的状态只有5000 所以直接记忆化搜索就可以了 emm原来map还可以映射ve ...

  4. zabbix通过shell脚本安装异常问题定位

    htxk-106主机信息现象如下: 通过zabbix_get命令 zabbix_get [7189]: Check access restrictions in Zabbix agent config ...

  5. net core体系-web应用程序-1VS2017构建一个简单的web

    使用vs2017,添加一个新项目-asp.net core web应用程序. 结构如图, wwwroot放了网站的静态资源如css.js.image文件: appsetting.json是应用程序的配 ...

  6. Android测试环境搭建

    Android测试环境搭建 一.操作系统 使用Win7_64位操作系统.(可以用其他的系统,下面都是针对Win7 64位进行操作) 二.安装JDK 运行jdk-6u45-windows-x64.exe ...

  7. 51Nod1309 Value of all Permutations 期望

    原文链接https://www.cnblogs.com/zhouzhendong/p/51Nod1309.html 题目传送门 - 51Nod1309 题意 长度为N的整数数组A,有Q个查询,每个查询 ...

  8. POJ3041 Asteroids 二分图匹配 匈牙利算法

    原文链接http://www.cnblogs.com/zhouzhendong/p/8229200.html 题目传送门 - POJ3041 题意概括 有一个n*n的矩阵,有些点是障碍物. 现在每次可 ...

  9. BZOJ3772 精神污染 主席树 dfs序

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ3772 题意概括 给出一个树,共n个节点. 有m条互不相同的树上路径. 现在让你随机选择2条路径,问 ...

  10. EditPlus文本库编辑说明

    EditPlus3 “编辑”命令(素材文本组合框弹出菜单)使用此命令载入当前的素材文本库文件(扩展名为“.CTL”)到编辑器中并直接编辑它.素材文本库文件必须按预定义语法编写.该语法非常简单.最快的方 ...