称号:考虑到用户层面。打印出指定的矩阵,例如,一个给定的用户10,例如,下面的输出应被视为在图:

程序如下所示:

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

程序执行结果:

版权声明:本文博客原创文章。博客,未经同意,不得转载。

笔试题&amp;面试题:输入一个维度,逆时针打印出一个指定矩阵的更多相关文章

  1. 一道c++面试题 输入一个维度,逆时针打印出一个指定的矩阵

    题目:逆时针打印矩阵元素 #include <stdio.h> #include <malloc.h> int main() { int dimension; int *p; ...

  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. AbstractQueuedSynchronizer的介绍和原理分析(转)

    简介 提供了一个基于FIFO队列,可以用于构建锁或者其他相关同步装置的基础框架.该同步器(以下简称同步器)利用了一个int来表示状态,期望它能够成为实现大部分同步需求的基础.使用的方法是继承,子类通过 ...

  2. logstash+ElasticSearch+Kibana VS Splunk

    logstash+ElasticSearch+Kibana VS Splunk 最近帮磊哥移植一套开源的日志管理软件,替代Splunk. Splunk是一个功能强大的日志管理工具,它不仅可以用多种方式 ...

  3. 【filezilla】 ubuntu下安装filezilla

    sudo apt-get install filezilla '安装filezilla3.6.02 filezilla '执行filezilla

  4. java 常用的包 默认导入的包

    1.java.lang----包含一些Java语言的核心类,如String.Math.Integer.System和Thread,提供常用功能. 2.java.awt----包含了构成抽象窗口工具集( ...

  5. EF 批量 循环删除

    var list = db.T_xAppRecord.Where(u => u.Id == 1).ToList(); //2.0 遍历集合,将 要删除的 对象 的代理对象的State 设置为 D ...

  6. [jQuery]地图浏览:如何实现图片的放大缩小和点击之后的位置居中

    HTML代码: <!DOCTYPE html> <html> <head> <script src="http://ajax.googleapis. ...

  7. ACdream原创群赛(18)のAK's dream题解

    只做了4题水题ADGI A题需要注意的就是“[...]”的输出了,何时输出,何时不输出. #include <stdio.h> int main() { int n, cur, d; ; ...

  8. python学习之list

    list: 创建:list = [5,7,9] 取值和改值:list[1] = list[1] * 5 列表尾插入:list.append(4) 去掉第0个值并返回第0个值的数值:list.pop(0 ...

  9. HDU 3177 Crixalis&#39;s Equipment(贪婪)

    主题链接:http://acm.hdu.edu.cn/showproblem.php? pid=3177 Problem Description Crixalis - Sand King used t ...

  10. [Network]Application Layer

    1 Principles of Network Applications 1.1 Application Architectures Client-Server Peer-to-Peer Hybird ...