问题描述:

对一个方阵转置,就是把原来的行号变列号,原来的列号变行号
    例如,如下的方阵:
 1  2  3  4
 5  6  7  8
 9 10 11 12
13 14 15 16

转置后变为:

1  5  9 13
 2  6 10 14
 3  7 11 15
 4  8 12 16

但,如果是对该方阵顺时针旋转(不是转置),却是如下结果:

13  9  5  1
14 10  6  2
15 11  7  3
16 12  8  4

下面的代码实现的功能就是要把一个方阵顺时针旋转。

void rotate(int* x, int rank)
{int* y = (int*)malloc(___________________);  // 填空for(int i=0; i<rank * rank; i++){y[_________________________] = x[i];  // 填空}for(i=0; i<rank*rank; i++){x[i] = y[i];}free(y);
}
int main(int argc, char* argv[])
{int x[4][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};int rank = 4;rotate(&x[0][0], rank);for(int i=0; i<rank; i++){for(int j=0; j<rank; j++){printf("%4d", x[i][j]);}printf("\n");}return 0;
}

请分析代码逻辑,并推测划线处的代码。

答案写在 “解答.txt” 文件中

第一个空就是考察的malloc函数的使用方法:sizeof(int)*rank*rank;

我们首先使用二维坐标表示方阵中的元素:

旋转之前为a[m][n],旋转之后为a[n,rank-1-m];

我们假设a[m][n]等价于a[i],则m=i/rank,n=i%rank;

a[n,rank-1-m]等价于a[j],则 j=n*rank+(rank-1-m)=(i%rank)*rank+(rank-1-i/rank);

第一个空的答案是:sizeof(int)*rank*rank

第二个空的答案是:(i%rank)*rank+(rank-1-i/rank)

转载于:https://www.cnblogs.com/zhezh/p/3773329.html

2012年蓝桥杯【初赛试题】 转方阵相关推荐

  1. 第十二届蓝桥杯初赛试题B直线

    算法跑的时间有点慢,但是结果应该是准确的,引入字典会不会加快速度?希望大佬指点 li = [] li1 = []#我们不考虑平行直线 平行直线数目就等于m+n m, n = map(int,input ...

  2. 2012第三届蓝桥杯预赛题

    1.      微生物增殖(用每半分钟作为一个增长量) 假设有两种微生物 X 和 Y X出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次(数目加倍). 一个新出生的X,半分钟之后吃掉1 ...

  3. [蓝桥杯][历届试题]国王的烦恼(反向+并查集)

    问题 1435: [蓝桥杯][历届试题]国王的烦恼 时间限制: 1Sec 内存限制: 128MB 提交: 802 解决: 213 题目描述 C国由n个小岛组成,为了方便小岛之间联络,C国在小岛间建立了 ...

  4. 蓝桥杯 - 历届试题 - 日期问题

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_33531813/article/details/79516258 </div>&l ...

  5. 蓝桥杯历届试题 地宫取宝 dp or 记忆化搜索

    问题描述 X 国王有一个地宫宝库.是 n x m 个格子的矩阵.每个格子放一件宝贝.每个宝贝贴着价值标签. 地宫的入口在左上角,出口在右下角. 小明被带到地宫的入口,国王要求他只能向右或向下行走. 走 ...

  6. 蓝桥杯 初赛题目 高斯日记

    蓝桥杯 初赛题目 高斯日记 题目描述: 大数学家高斯有个好习惯:无论如何都要记日记. 他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210 后来人们知道,那个整数就是日期, ...

  7. 二分搜索,POJ2456,NYOJ 914, 区间移位-蓝桥杯-历届试题

    二分搜索是不断缩减可能解的范围来得到最优解, 因为每次是折半, 所以指数爆炸有多快,这个效率就有多高 POJ2456为例, 传送门 简而言之, 就是将牛之间的距离的最小值最大化. #include&l ...

  8. 蓝桥杯历届试题代码参考

    蓝桥杯历届试题代码参考 历届试题 核桃的数量 打印十字图 带分数 剪格子 错误票据 翻硬币 连号区间数 买不到的数目 大臣的旅费 幸运数 横向打印二叉树 危险系数 网络寻路 高僧斗法 格子刷油漆 农场 ...

  9. 蓝桥杯:试题 算法训练 Remember the A La Mode

    蓝桥杯:试题 算法训练 Remember the A La Mode 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 Hugh Samston经营着一个为今年的ICPC世界总决赛的参 ...

  10. 问题 1433: [蓝桥杯][历届试题]危险系数(并查集and暴力)

    问题 1433: [蓝桥杯][历届试题]危险系数 时间限制: 1Sec 内存限制: 128MB 提交: 123 解决: 39 题目描述 问题描述 抗日战争时期,冀中平原的地道战曾发挥重要作用. 地道的 ...

最新文章

  1. uva10401Injured Queen Problem(递推)
  2. 51nod 1098 最小方差 排序+前缀和+期望方差公式
  3. ACCESS 文本文件导入和导出指定字段类型的方法
  4. C# 利用系统剪贴板 保存 自定义对象
  5. oracle无效的存储过程怎么解决,oracle数据库 编译无效存储过程
  6. android系统功耗优化(2)---Android最佳实践之性能 - 电池续航时间优化
  7. awk文本处理总结(入门,中级,高级)
  8. C语言 pthread_join
  9. mysql升级到5.7版本后,运行程序报错this is incompatible with sql_mode=only_full_group_by
  10. linux带参数post调用接口,CURL命令模拟Http Get/Post以及带cookies调用接口
  11. 面试题:100个白球,100个黑球,每次取两个
  12. ubuntu中颜色拾取器的安装以及16进制ARGB值在线转颜色
  13. AB变频器常见故障的原因及处理方法
  14. 带你玩转软件项目测试管理——项目研发管理模式(一)
  15. php西游记源码,基于Python第三方插件实现西游记章节标注汉语拼音的方法
  16. 错误1406.无法将数值写入键/Software/Classess/.htm/OpenWithList/devenv.exer的解决方案
  17. 怎么发送电子邮件到别人邮箱?手把手教你!
  18. [SHOI2017]期末考试
  19. DRM驱动(二)之DRM驱动模块简介
  20. C/C++编程刷题分享—常见的经典面试题一

热门文章

  1. 浏览器解析html全过程详解
  2. Codeforces 295A. Greg and Array
  3. IQueryable接口与IEnumberable接口的区别
  4. 现在补上个人项目的分析照片
  5. 微信公众号自定义菜单设置管理
  6. java高效获取大文件的行数
  7. STL(一)——栈及其应用
  8. 模拟实现HashMap
  9. android 自动化测试之monkeyrunner学习(三),自动化测试之Monkeyrunner
  10. c语言switch scanf语句,c语言switch语句 谢谢·!~!~