【九度OJ】题目1171:C翻转 解题报告

标签(空格分隔): 九度OJ


http://ac.jobdu.com/problem.php?pid=1171

题目描述:

首先输入一个5 * 5的数组,然后输入一行,这一行有四个数,前两个代表操作类型,后两个数x y代表需操作数据为以x y为左上角的那几个数据。
操作类型有四种:
1 2 表示:90度,顺时针,翻转4个数
1 3 表示:90度,顺时针,翻转9个数
2 2 表示:90度,逆时针,翻转4个数
2 3 表示:90度,逆时针,翻转9个数

输入:

输入有多组数据。
每组输入一个5 * 5的数组,然后输入一行,这一行有四个数,前两个代表操作类型,后两个数x y代表需操作数据为以x y为左上角的那几个数据。

输出:

输出翻转后的数组。

样例输入:

  1. 1 2 3 4 5
  2. 6 7 8 9 10
  3. 11 12 13 14 15
  4. 16 17 18 19 20
  5. 21 22 23 24 25
  6. 1 3 1 1

样例输出:

  1. 11 6 1 4 5
  2. 12 7 2 9 10
  3. 13 8 3 14 15
  4. 16 17 18 19 20
  5. 21 22 23 24 25

Ways

貌似是我做过最傻的题。。看到结果是啥样的就一个数据一个数据的对上号。逆时针90度等于顺时针三次。

另外注意数组的操作,不用显性使用指针,数组名字就是指针。

  1. #include<stdio.h>
  2. void op12(int nums[5][5], int x, int y) {
  3. int temp = nums[x - 1][y - 1];
  4. nums[x - 1][y - 1] = nums[x][y - 1];
  5. nums[x][y - 1] = nums[x][y];
  6. nums[x][y] = nums[x - 1][y];
  7. nums[x - 1][y] = temp;
  8. }
  9. void op13(int nums[5][5], int x, int y) {
  10. int temp1 = nums[x - 1][y - 1];
  11. int temp2 = nums[x][y - 1];
  12. nums[x - 1][y - 1] = nums[x + 1][y - 1];
  13. nums[x][y - 1] = nums[x + 1][y];
  14. nums[x + 1][y - 1] = nums[x + 1][y + 1];
  15. nums[x + 1][y] = nums[x][y + 1];
  16. nums[x + 1][y + 1] = nums[x - 1][y + 1];
  17. nums[x][y + 1] = nums[x - 1][y];
  18. nums[x - 1][y + 1] = temp1;
  19. nums[x - 1][y] = temp2;
  20. }
  21. void op22(int nums[5][5], int x, int y) {
  22. op12(nums, x, y);
  23. op12(nums, x, y);
  24. op12(nums, x, y);
  25. }
  26. void op23(int nums[5][5], int x, int y) {
  27. op13(nums, x, y);
  28. op13(nums, x, y);
  29. op13(nums, x, y);
  30. }
  31. int main() {
  32. int nums[5][5];
  33. while (scanf("%d", &nums[0][0]) != EOF) {
  34. for (int i = 0; i < 5; i++) {
  35. for (int j = 0; j < 5; j++) {
  36. if (i == 0 && j == 0) {
  37. continue;
  38. }
  39. scanf("%d", &nums[i][j]);
  40. }
  41. }
  42. int cmd1, cmd2;
  43. int x, y;
  44. scanf("%d%d", &cmd1, &cmd2);
  45. scanf("%d%d", &x, &y);
  46. if (cmd1 == 1 && cmd2 == 2) {
  47. op12(nums, x, y);//不用显性使用指针
  48. } else if (cmd1 == 1 && cmd2 == 3) {
  49. op13(nums, x, y);
  50. } else if (cmd1 == 2 && cmd2 == 2) {
  51. op22(nums, x, y);
  52. } else if (cmd1 == 2 && cmd2 == 3) {
  53. op23(nums, x, y);
  54. }
  55. for (int i = 0; i < 5; i++) {
  56. bool isFirst = true;
  57. for (int j = 0; j < 5; j++) {
  58. if (isFirst) {
  59. printf("%d", nums[i][j]);
  60. isFirst = false;
  61. } else {
  62. printf(" %d", nums[i][j]);
  63. }
  64. }
  65. printf("\n");
  66. }
  67. }
  68. return 0;
  69. }

Date

2017 年 3 月 17 日

【九度OJ】题目1171:C翻转 解题报告的更多相关文章

  1. 九度oj 题目1171:C翻转

    题目描述: 首先输入一个5 * 5的数组,然后输入一行,这一行有四个数,前两个代表操作类型,后两个数x y代表需操作数据为以x y为左上角的那几个数据. 操作类型有四种:  1 2 表示:90度,顺时 ...

  2. 九度oj 题目1361:翻转单词顺序

    题目描述: JOBDU最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上.同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思.例如,“stu ...

  3. 九度OJ 题目1384:二维数组中的查找

    /********************************* * 日期:2013-10-11 * 作者:SJF0115 * 题号: 九度OJ 题目1384:二维数组中的查找 * 来源:http ...

  4. hdu 1284 关于钱币兑换的一系列问题 九度oj 题目1408:吃豆机器人

    钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub ...

  5. 九度oj题目&amp;吉大考研11年机试题全解

    九度oj题目(吉大考研11年机试题全解) 吉大考研机试2011年题目: 题目一(jobdu1105:字符串的反码).    http://ac.jobdu.com/problem.php?pid=11 ...

  6. 九度oj 题目1007:奥运排序问题

    九度oj 题目1007:奥运排序问题   恢复 题目描述: 按要求,给国家进行排名. 输入:                        有多组数据. 第一行给出国家数N,要求排名的国家数M,国家号 ...

  7. 九度oj 题目1087:约数的个数

    题目链接:http://ac.jobdu.com/problem.php?pid=1087 题目描述: 输入n个整数,依次输出每个数的约数的个数 输入: 输入的第一行为N,即数组的个数(N<=1 ...

  8. 九度OJ题目1105:字符串的反码

    tips:scanf,cin输入字符串遇到空格就停止,所以想输入一行字符并保留最后的"\0"还是用gets()函数比较好,九度OJ真操蛋,true?没有这个关键字,还是用1吧,还是 ...

  9. 九度oj题目1009:二叉搜索树

    题目描述: 判断两序列是否为同一二叉搜索树序列 输入:                        开始一个数n,(1<=n<=20) 表示有n个需要判断,n= 0 的时候输入结束. 接 ...

  10. 九度oj题目1002:Grading

    //不是说C语言就是C++的子集么,为毛printf在九度OJ上不能通过编译,abs还不支持参数为整型的abs()重载 //C++比较正确的做法是#include<cmath.h>,cou ...

随机推荐

  1. MYSQL(3)

    加载C盘下的目录 全表查询 查询部分字段 查询总数 条件过滤 and or 包含 范围检查 between and 否定结果not 匹配任意字符    like 以什么开始^   rlike 以什么结 ...

  2. javaSE高级篇7 — 设计原则和设计模式 — 设计模式慢慢更( 这是思想层次篇 )

    1.什么是设计原则? 设计原则就是面向对象的原则嘛,即:OOP原则 换句话说:就是为了处理类与类之间的关系( 包括接口.类中的方法 ) 2.OOP设计原则有哪些? 1).开闭原则:就是指对拓展开放.对 ...

  3. JSP内置对象之out对象

    一.       JSP内置对象的概述     由于JSP使用java作为脚本语言,所以JSP将具有强大的对象处理能力,并且可以动态地创建Web页面内容.但Java语法在使用一个对象前,需要先实例化这 ...

  4. 从for循环到机器码

    def p(*x): print(x) p(type(range), dir(range)) r = range(2); i = iter(r) try: p(next(i)); p(next(i)) ...

  5. Spark集群环境搭建——部署Spark集群

    在前面我们已经准备了三台服务器,并做好初始化,配置好jdk与免密登录等.并且已经安装好了hadoop集群. 如果还没有配置好的,参考我前面两篇博客: Spark集群环境搭建--服务器环境初始化:htt ...

  6. webservice--常用注解

    定义说明书的显示方法1.@WebService(serviceName="PojoService", portName="PojoPort", name=&qu ...

  7. js实现递归菜单无限层

    /*动态加载菜单*/ function dynamicMenu(data){ if (userID != "admin"){ //1.清空所有菜单 $("#menuLis ...

  8. oracle name

    1.db_name 数据库名 SQL> connect xys/manager as sysdba 已连接. SQL> show user USER 为 "SYS" S ...

  9. hash 模式与 history 模式小记

    hash 模式 这里的 hash 就是指 url 后的 # 号以及后面的字符.比如说 "www.baidu.com/#hashhash" ,其中 "#hashhash&q ...

  10. 使用buffered流结合byte数组,读入文件中的内容,包括中文字符

    package com.itcast.demo05.Buffered;import java.io.BufferedInputStream;import java.io.FileInputStream ...