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");
    }
  }
}

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

(0)

相关推荐

  • C++实现稀疏矩阵的压缩存储实例

    什么是稀疏矩阵呢,就是在M*N的矩阵中,有效值的个数远小于无效值的个数,并且这些数据的分布没有规律.在压缩存储稀疏矩阵的时候我们只存储极少数的有效数据.我们在这里使用三元组存储每一个有效数据,三元组按原矩阵中的位置,以行优先级先后次序依次存放.下面我们来看一下代码实现. #include<iostream> #include<vector> #include<assert.h> using namespace std; template<class T> c

  • C语言实现稀疏矩阵

    本文实例为大家分享了C语言实现稀疏矩阵的具体代码,供大家参考,具体内容如下 #include "stdio.h" #define maxsize 10 typedef struct { int i,j; //非零元素的行.列 int v; //非零元素的值 }Triple; typedef struct { Triple data[maxsize]; int m,n; //矩阵的行.列 }TSMarix; InitTriple(TSMarix *M) { int i,j,k,v,t;

  • C++中实现矩阵的加法和乘法实例

    C++中实现矩阵的加法和乘法实例 实现效果图: 实例代码: #include<iostream> using namespace std; class Matrix { int row;//矩阵的行 int col;//矩阵的列 int **a;//保存二维数组的元素 public: Matrix();//默认构造函数 Matrix(int r, int c); Matrix(const Matrix &is);//拷贝构造函数 void Madd(const Matrix &

  • 矩阵的行主序与列主序的分析

    1.矩阵在内存中的存储 不管是D3D还是OpenGL,使用的矩阵都是线性代数标准的矩阵,只是在存储方式上有所不同.分别为:行主序(Direct3D),列主序(OpenGL) 存储顺序说明了线性代数中的矩阵如何在线性的内存数组中存储. 例如:内存中使用一个二维数组m存储矩阵,第i行第j列的表示方法分别为:     行主序:m[i][j]     列主序:m[j][i] 线性代数意义的同一个矩阵,在d3d 和 openGL 中的存储顺序 线代:a11,a12,a13,a14             

  • PHP使用数组实现矩阵数学运算的方法示例

    本文实例讲述了PHP使用数组实现矩阵数学运算的方法.分享给大家供大家参考,具体如下: 矩阵运算就是对两个数据表进行某种数学运算,并得到另一个数据表. 下面的例子中我们创建了一个基本完整的矩阵运算函数库,以便用于矩阵操作的程序中. 来自 PHP5 in Practice  (U.S.)Elliott III & Jonathan D.Eisenhamer <?php // A Library of Matrix Math functions. // All assume a Matrix de

  • C语言矩阵连乘 (动态规划)详解

    动态规划法 题目描述:给定n个矩阵{A1,A2....An},其中Ai与Ai+1是可以相乘的,判断这n个矩阵通过加括号的方式相乘,使得相乘的次数最少! 以矩阵链ABCD为例 按照矩阵链长度递增计算最优值 矩阵链长度为1时,分别计算出矩阵链A.B.C.D的最优值 矩阵链长度为2时,分别计算出矩阵链AB.BC.CD的最优值 矩阵链长度为3时,分别计算出矩阵链ABC.BCD的最优值 矩阵链长度为4时,计算出矩阵链ABCD的最优值 动归方程: 分析: k为矩阵链断开的位置 d数组存放矩阵链计算的最优值,

  • 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;

  • C语言实现数组的循环左移,右移,翻转的示例

    数组结合指针可以实现很多有趣的功能,比如下面这个程序: 假设数组为 : 12345 如果左移一次即为:23451 ,依次类推 如果右移一次即为:51234 ,依次类推 翻转则为:54321 我们来实现下这个程序: #include <stdio.h> #include <stdlib.h> #include <string.h> #define NR(x) (sizeof(x)/sizeof(x[0])) //数组左移 int buffer_left_move(int

  • R语言中矩阵matrix和数据框data.frame的使用详解

    本文主要介绍了R语言中矩阵matrix和数据框data.frame的一些使用,分享给大家,具体如下: "一,矩阵matrix" "创建向量" x_1=c(1,2,3) x_1=c(1:3) x_2=1:3 typeof(x_1)==typeof(x_2)#查看目标类型 x_3=seq(1,6,length=3)#将1--6分为3个数 a<-rep(1:3,each=3) #1到3依次重复 c<-rep(1:3,times=3) #1到3重复3次 d<

  • R语言创建矩阵的实现方法

    矩阵 向量vector用于描述一维数据,是R语言中最基础的数据结构形式 矩阵matrix可以描述二维数据,和向量相似,其内部元素可以是实数.复数.字符.逻辑型数据 矩阵包含行和列,分为单位矩阵.对角矩阵和普通矩阵.矩阵可以进行四则运算,以及进行求特征值.特征向量等运算 矩阵matrix使用两个下标来访问元素,A[i,j]表示矩阵A第i行.第j列的元素 矩阵创建--matrix函数 matrix函数创建矩阵,其格式为: matrix(data = NA,nrow = 1,ncol = 1,byro

  • R语言 实现矩阵相乘100次

    [D1 D2]2*1 [T1 T2]1*2 要求D1和D2随机的变动, 矩阵相乘100次 rm(list=ls()) gc() options(scipen = 2000) ##################写成函数###########3 #################定义TT矩阵(1*2) TT <- matrix(c(1,3),1,2) DD<- matrix(c(1,2),2,1) result1 <- DD %*% TT m1=result1 ##############

  • C语言杨氏矩阵查找算法实例讲解

    目录 一.杨氏矩阵介绍 二.查找算法 1.查找思路 2.步骤 3.代码 三.杨氏矩阵例题 代码 特别注意 四.总结 本文以C语言实现,介绍杨氏矩阵中通用的查找算法. 一.杨氏矩阵介绍 杨氏矩阵种,每一行的数都从左到右递增,每一列的数都从上到下递增.如下图是一个简单的杨氏矩阵: 有一个数字矩阵,矩阵的每行从左到右是递增的,矩阵从上到下是递增的,请编写程序在这样的矩阵中查找某个数字是否存在. 要求:时间复杂度小于O(N) 二.查找算法 1.查找思路 杨氏矩阵是很有特点的,它有规律递增的特点决定了针对

  • C语言杨氏矩阵实例教你编写

    目录 一.杨氏矩阵是什么 二.编写步骤 三.程序的改进 四.总结 一.杨氏矩阵是什么 一个数字矩阵,矩阵的每一行从左到右一次递增,矩阵从上到下递增,在这样的矩阵中查找一个数字是否存在.时间复杂度小于O(N). 二.编写步骤 1.首先给出一个三乘三的矩阵,我们想找到数字7是否在这个数组之中,如图所示. 2. 我们给出的方法是一种从右上角开始,另一种是从左下角开始.比如从右上角开始,编写一个函数. 3. 函数的编写.从右上角开始,将右上角数字与数字7比较,如果数字7大于右上角的数字(3)(因为第一行

  • R语言 出现矩阵/缺失值的解决方案

    缺失值处理一般包括三步: 1. 识别缺失数据: 2. 检查导致数据缺失的原因: 3. 删除包含缺失值的实例或用合理的数值代替(插补)缺失值. 1.判断缺失值 函数is.na().is.nan()和is.infinite()可分别用来识别缺失值.不可能值和无穷值.每个返回结果都是 TRUE或FALSE na表示缺失值 nan表示NOT A NUMBER infinite表示+-Inf 一定要亲手试x = 0/0,以及x = 1/0 >x <- NA > is.na(x) [1] TRUE

  • C语言求矩阵的各列元素之和的代码示例

    问题描述: 统计一个矩阵的各列元素之和.矩阵各元素为整数且绝对值不超过100. 要求输入: 有多个测试用例,每个测试用例的第一行是空格分隔的两个正整数n和m( 1 < n, m < 80 ),接下来的n行每行有m个空格分隔的整数,组成一个n*m的矩阵.最后一个测试用例n=0 m=0不用处理. 要求输出: 对每个测试用例,输出一行整数(空格分隔),顺序表示从第1列至第m列的各列元素之和. 输入示例: 3 5 1 1 1 2 -1 0 1 0 7 4 0 2 0 -8 -4 2 2 1 1 0 1

  • 利用iOS开发实现翻转扑克牌动画的方法

    前言 本文主要给大家介绍的关于利用iOS开发实现翻转扑克牌动画的方法,分享出来供大家参考学习,下面话不多说,来一起看看详细的介绍吧. 动画效果 实现原理 实现原理就是创建三个扑克牌pockerView , 先在扑克牌上添加一个imageview,作为牌的背面.然后实现翻转动画,在翻转的时候将imageview移除,添加另一个imageview作为正面. 核心代码: 方法一: 翻转动画,内部实现还是方法二 + (void)transitionWithView:(UIView *)view dura

随机推荐