基础练习 回形取数

简介: 问题描述   回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。

问题描述
  回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。
输入格式
  输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。
输出格式
  输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。
样例输入
3 3
1 2 3
4 5 6
7 8 9
样例输出
1 4 7 8 9 6 3 2 5
样例输入
3 2
1 2
3 4
5 6
样例输出
1 3 5 6 4 2

思路:
以下——>左——>上——>右为读数规律,控制下标增减完成输出。

code:

#include<stdio.h>
int main(){
    int m, n;
    int i, j;
    int cnt = 0;
    int x[200][200];
    scanf("%d%d", &m, &n);
    for(i=0; i<m; i++)
        for(j=0; j<n; j++)
            scanf("%d", &x[i][j]);
    i=0; j=0;
    while(cnt < m*n){
        while(x[i][j]>-1 && i<m){
            printf("%d ", x[i][j]);
            x[i][j] = -1;
            i++;cnt++;
        }
        i--;j++;
        while(x[i][j]>-1 && j<n){
            printf("%d ", x[i][j]);
            x[i][j] = -1;
            j++;cnt++;
        }
        i--;j--;
        while(x[i][j]>-1 && i>=0){
            printf("%d ", x[i][j]);
            x[i][j] = -1;
            i--;cnt++;
        }
        i++;j--;
        while(x[i][j]>-1 && j>=0){
            printf("%d ", x[i][j]);
            x[i][j] = -1;
            j--;cnt++;
        }
        j++;i++;
    }
    return 0;
}

初学小白,若有可改进之处欢迎评论

目录
相关文章
|
6月前
|
SQL 搜索推荐 数据挖掘
一文详解报表工具和BI工具的区别
一文详解报表工具和BI工具的区别
|
6月前
|
Java C++ Python
试题 基础练习 回形取数
试题 基础练习 回形取数
32 0
|
5月前
|
分布式计算 大数据 调度
MaxCompute产品使用问题之如何解决UDF针对数据每行操作,而XGBoost需要对数据整体操作的问题
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
5月前
|
机器学习/深度学习 分布式计算 运维
MaxCompute产品使用合集之任务执行时间不规律是什么导致的
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
6月前
|
监控
Dataphin功能Tips系列(10)-质量分计算口径
质量分大盘中的质量分计算口径是什么?
Dataphin功能Tips系列(10)-质量分计算口径
|
6月前
|
存储 数据采集 数据可视化
实时报表与多维分析,如何实现
实时报表与多维分析,如何实现
|
SQL BI 索引
【SQL开发实战技巧】系列(二十八):数仓报表场景☞人员分布问题以及不同组(分区)同时聚集如何实现
【SQL开发实战技巧】这一系列博主当作复习旧知识来进行写作,毕竟SQL开发在数据分析场景非常重要且基础,面试也会经常问SQL开发和调优经验,相信当我写完这一系列文章,也能再有所收获,未来面对SQL面试也能游刃有余~。
【SQL开发实战技巧】系列(二十八):数仓报表场景☞人员分布问题以及不同组(分区)同时聚集如何实现
【SQL开发实战技巧】系列(二十五):数仓报表场景☞结果集中的重复数据只显示一次以及计算部门薪资差异高效的写法以及如何对数据进行快速分组
本篇文章讲解的主要内容是:***如何使用lag函数让结果集重复数据只显示一次、用行转列pivot写法优化部门之间计算工资差异类似需求、如何通过ceil函数对已有数据进行分组打印、放假安排团队分组值班,如何通过ntile()over(order by )快速进行人员分组***
【SQL开发实战技巧】系列(二十五):数仓报表场景☞结果集中的重复数据只显示一次以及计算部门薪资差异高效的写法以及如何对数据进行快速分组
|
数据采集 SQL 存储
整体技术流程-数据入库(ETL)|学习笔记
快速学习整体技术流程-数据入库(ETL)
1115 1
整体技术流程-数据入库(ETL)|学习笔记
|
数据可视化 数据挖掘 大数据
好用的报表工具推荐(报表工具功能)
在这个大数据时代,大数据计算机已成为数据分析人员必备的工具,熟悉数据分析,并从数据快速抽取出经营问题,快速响应市场,才能让数据成为第一生产力。
好用的报表工具推荐(报表工具功能)
下一篇
无影云桌面