C语言实现矩阵翻转(上下翻转、左右翻转)

 更新时间:2017年05月18日 17:23:20   作者:NCITS  
这篇文章主要介绍了C语言实现矩阵翻转(上下翻转、左右翻转)的相关资料,需要的朋友可以参考下

C语言实现矩阵翻转 上下翻转与左右翻转

实例代码:

#include <stdio.h> 
  
void matrix (int m, int n, int t) 
{ 
  int arr[m][n]; 
  int i, j, k; 
  
  for (i = 0; i < m; i++){ 
    for (j = 0; j < n; j++){ 
      scanf("%d", &arr[i][j]); 
    } 
  } 
  if (t == 0){//左右翻转 
      for (i = 0; i < m; i++){ 
        for (j = n-1; j >= 0; j--){ 
          if ( j == 0 ) { 
            printf("%d", arr[i][j]); 
          } 
          else { 
            printf("%d ", arr[i][j]); 
          } 
        } 
        printf("\n"); 
      } 
  } 
  else if (t == 1){//上下翻转 
    for (i = m-1; i >= 0; i--){ 
      for (j = 0; j < n; j++){ 
        if ( j == n - 1 ) { 
          printf("%d", arr[i][j]); 
        } 
        else { 
          printf("%d ", arr[i][j]); 
        } 
      } 
      printf("\n"); 
    } 
  } 
} 
  
int main() 
{ 
  int m, n, t; 
  
  scanf("%d %d %d", &m, &n, &t); 
  matrix (m, n, t); 
  
  return 0; 
} 

 动态分配内存

void matrix (int m, int n, int t) 
{ 
  int i, j; 
  int **arr=(int**)malloc(m*sizeof(int*)); 
  for(i = 0; i < m; i++) 
  { 
    arr[i] = (int*)malloc(n * sizeof(int)); 
    for(j = 0; j < n;j++) 
    { 
      scanf("%d", &arr[i][j]); 
    } 
  } 
  /* 
  int **arr = new int*[m]; 
  for(i=0;i<m;i++) 
  { 
    arr[i] = new int[n]; 
    for(j=0;j<n;j++) 
    { 
      scanf("%d", &arr[i][j]); 
    } 
  } 
  */ 
  if (t == 0){//左右翻转 
      for (i = 0; i < m; i++){ 
        for (j = n-1; j >= 0; j--){ 
          if ( j == 0 ) { 
            printf("%d", arr[i][j]); 
          } 
          else { 
            printf("%d ", arr[i][j]); 
          } 
        } 
        printf("\n"); 
      } 
  } 
  else if (t == 1){//上下翻转 
    for (i = m-1; i >= 0; i--){ 
      for (j = 0; j < n; j++){ 
        if ( j == n - 1 ) { 
          printf("%d", arr[i][j]); 
        } 
        else { 
          printf("%d ", arr[i][j]); 
        } 
      } 
      printf("\n"); 
    } 
  } 
} 

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • OnSize、OnSizing和OnGetMinMaxInfo区别分析

    OnSize、OnSizing和OnGetMinMaxInfo区别分析

    这篇文章主要介绍了OnSize、OnSizing和OnGetMinMaxInfo区别分析,需要的朋友可以参考下
    2015-01-01
  • 详解c/c++链式堆栈描述进制转换问题示例

    详解c/c++链式堆栈描述进制转换问题示例

    这篇文章主要为大家介绍了c/c++链式堆栈描述进制转换问题示例解析有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-11-11
  • C语言调用SQLite数据库实现数据增删改查

    C语言调用SQLite数据库实现数据增删改查

    SQLite是一种轻量级的关系型数据库管理系统,是一个开源的、零配置的、服务器端的、自包含的、零管理的、事务性的SQL数据库引擎,本文主要介绍了如何调用SQLite数据库实现数据增删改查,需要的可以参考一下
    2023-08-08
  • 实战开发为单片机的按键加一个锁防止多次触发的细节

    实战开发为单片机的按键加一个锁防止多次触发的细节

    今天小编就为大家分享一篇关于实战开发为单片机的按键加一个锁防止多次触发的细节,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • C++中单链表的建立与基本操作

    C++中单链表的建立与基本操作

    以下是对C++中单链表的建立与基本操作进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2013-10-10
  • 详解C++中左值与右值的概念与应用

    详解C++中左值与右值的概念与应用

    左值(Lvalue)和右值(Rvalue)是C++和其他编程语言中用来区分表达式的概念。这篇文章主要为大家详细介绍了它们的概念与应用,需要的可以参考一下
    2023-03-03
  • Visual Studio Code 2020安装教程及CPP环境配置(教程图解)

    Visual Studio Code 2020安装教程及CPP环境配置(教程图解)

    这篇文章主要介绍了Visual Studio Code 2020安装教程、CPP环境配置,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • C++详解如何通过模板实现元素的反序

    C++详解如何通过模板实现元素的反序

    这篇文章主要介绍了C++中模板(Template)实现元素的反序,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • C语言实例问题探究字符串函数的应用

    C语言实例问题探究字符串函数的应用

    字符串函数(String processing function)也叫字符串处理函数,指的是编程语言中用来进行字符串处理的函数,如C,pascal,Visual以及LotusScript中进行字符串拷贝,计算长度,字符查找等的函数
    2022-04-04
  • C++中多才多艺的 const

    C++中多才多艺的 const

    在C++中,关键字const可以用来修饰任何作用域内的变量、函数参数、函数本体、函数返回值、成员函数、迭代器,也可以用来修饰指针本身和指针目标,可谓多才多艺,我们要详细了解其内部细节,以及逻辑奥秘,让这把多功能瑞士军刀尽情发挥其作用,需要的朋友可以参考一下
    2021-09-09

最新评论