c++中将二维数组元素变换为逆向存放的实现代码

1、例如,原始二维数组为,逆向存放后变为。试建立一个类REVARR,完成上述工作。

具体要求如下:

(1)私有数据成员

int a[M][N]:初始化时存放原始二维数组,最终存放逆向存放后的二维数组。

(2)公有成员函数

REVARR(int x[M][N]):构造函数,用形参x初始化数据成员a。
void reverse():按题目要求处理二维数组。
void print():按二维数组方式输出a数组值。

(3)在主函数中完成对该类的测试。在程序的开头,定义符号常数M和N的值分别为3和4,表示数组的行数和列数。在主函数中定义数组int data[M][N],其初值如上。定义一个REVARR类的对象arr,并用数组data初始化该对象的成员a,输出原数组值,然后调用成员函数逆序存放二维数组,最后输出逆序后的二维数组。

#include "stdafx.h"
#include<iostream>
#define M 3
#define N 4
using namespace std;
class REVARR
{
public:
	REVARR(int x[M][N]);//:构造函数,用形参x初始化数据成员a。
  void reverse();//:按题目要求处理二维数组。
  void print();//:按二维数组方式输出a数组值。
private:
	int a[M][N];//:初始化时存放原始二维数组,最终存放逆向存放后的二维数组。
};
REVARR::REVARR(int x[M][N])
{
	int i,j;
	for(i=0;i<M;i++)
	{
		for(j=0;j<N;j++)
		{
			a[i][j]=x[i][j];
		}
	}
}
void REVARR::reverse()
{
	int t,i,j;

	 for(i=0;i<M-1;i++)
	 {
	  for(j=0;j<N;j++)
	  {
		  t = a[i][j];
		  a[i][j] = a[M-i-1][N-j-1];
		  a[M-i-1][N-j-1] = t;

	  }
	 }
}

void REVARR::print()
{
	int i,j;
	cout<<"转换后\n";
	for(i=0;i<M;i++)
	{
	  for(j=0;j<N;j++)
	  {
		  cout<<a[i][j]<<" ";
	  }
	  cout<<endl;
	}
	cout<<endl;
}
int main()
{
	int data[M][N];
	int i,j;
	cout <<"请输入3行4列数:\n";
	for(i=0;i<M;i++)
	{
	  for(j=0;j<N;j++)
	  {
		  cin>>data[i][j];
	  }
	}
	REVARR arr(data);
	arr.reverse();
	arr.print();
	system("pause");
	return 0;
}

2、编程:设计一个reverse()函数,实现数组元素逆序存放。在主函数中输入n个整数,调用reverse()函数将它们逆序存放,最后输出逆序后的结果

利用指针

#include<stdio.h>
void reverse(int *a,int n)
{
	int i,j,m,t;
	m=(n-1)/2;
	for(i=0;i<=m;i++)
	{j=n-i-1;
		t=*(a+i);
		*(a+i)=*(a+j);
		*(a+j)=t;
	}
}
int main()
{
	int n,i,b[10];
	printf("请输入n的个数:");
	scanf("%d",&n);
	printf("请输入%d个整数:",n);
	for(i=0;i<n;i++)
	scanf("%d",&b[i]);
	reverse(b,n);
	printf("%d个数组逆序后的结果:\n",n);
	for(i=0;i<n;i++)
	printf("%d\t",b[i]);
	printf("\n");
	return 0;
}

到此这篇关于c++中将二维数组元素变换为逆向存放的实现代码的文章就介绍到这了,更多相关c++二维数组元素逆向存放内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • c++中将二维数组元素变换为逆向存放的实现代码

    1.例如,原始二维数组为,逆向存放后变为.试建立一个类REVARR,完成上述工作. 具体要求如下: (1)私有数据成员 int a[M][N]:初始化时存放原始二维数组,最终存放逆向存放后的二维数组. (2)公有成员函数 REVARR(int x[M][N]):构造函数,用形参x初始化数据成员a. void reverse():按题目要求处理二维数组. void print():按二维数组方式输出a数组值. (3)在主函数中完成对该类的测试.在程序的开头,定义符号常数M和N的值分别为3和4,表示

  • AngularJS使用ng-repeat遍历二维数组元素的方法详解

    本文实例讲述了AngularJS使用ng-repeat遍历二维数组元素的方法.分享给大家供大家参考,具体如下: 问题: 最近在做报表的项目,有一种情况是后台返回给我的是一个二维数组,在前台将数据放入到表格中,因为我们用的是angularJS的前台框架,所以利用ng-repeat来实现. 实现方法: 首先在js中: $scope.Week = [[ '云南省 ', 'a', 's', 'd', 'e', 'w','t' ],[ '陕西省 ', 'l', 'p', 'o', 'i', 'u','y'

  • JS实现二维数组元素的排列组合运算简单示例

    本文实例讲述了JS实现二维数组元素的排列组合运算.分享给大家供大家参考,具体如下: 用js实现二维数组里面的元素排列组合一个小demo: 源码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3

  • PHP统计二维数组元素个数的方法

    解决思路1. 首先从数据库的congtent字段读取数据,并把它们合并成一个字符串. 复制代码 代码如下: <?php while($myrow = $connector -> fetch_array($result)) {  //$r[] = explode(",", $myrow["content"]);  $str .= $myrow["content"].','; } $arr_str = substr($str, 0, -1

  • Java一维数组和二维数组元素默认初始化值的判断方式

    目录 一.数组与数组元素 二.一维数组 1.元素为基本数据类型时 2. 数组元素为引用类型时 三.二维数组 1. int[][] arr = new int[2][2] 2. int[][] arr = new int[2][] 一.数组与数组元素 Java中数组是引用类型 数组的元素可以是基本类型也可以是引用类型,弄清数组元素的类型可以帮助我们去理解数组元素默认初始化 二.一维数组 一维数组元素默认初始化值的情况分为两种,元素为基本数据类型和引用数据类型 1.元素为基本数据类型时 整型类型(b

  • php对二维数组按指定键值key排序示例代码

    复制代码 代码如下: function array_sort($array, $key){ if(is_array($array)){ $key_array = null; $new_array = null; for( $i = 0; $i < count( $array ); $i++ ){ $key_array[$array[$i][$key]] = $i; } ksort($key_array); $j = 0; foreach($key_array as $k => $v){ $ne

  • PHP从二维数组得到N层分类树的实现代码

    公司的产品分类存在一张表内,以mid标识其父分类,需要得到有层次结构的数组,以备后续操作. 想了下,想了一会儿没想出不去重复读取数据库的方法或者不需要递归的操作. 数据源:(数据要求一维key与对应value二维数组的id要一样) $items = array(     1 => array('id' => 1, 'pid' => 0, 'name' => '江西省'),     2 => array('id' => 2, 'pid' => 0, 'name' =

  • js二维数组定义和初始化的三种方法总结

    方法一:直接定义并且初始化,这种遇到数量少的情况可以用 var _TheArray = [["0-1","0-2"],["1-1","1-2"],["2-1","2-2"]] 方法二:未知长度的二维数组 var tArray = new Array(); //先声明一维 for(var k=0;k<i;k++){ //一维长度为i,i为变量,可以根据实际情况改变 tArray[k]

  • 详解Java中一维、二维数组在内存中的结构

    前言 我们知道在Java中数组属于引用数据类型,它整个数组的数组元素既可以是基本数据类型的(如 byte \ int \ short \ long \ float \ double \ char \ boolean 这些),也可以是引用数据类型的.当它的数组元素是基本数据类型时,这个数组就是一个一维数组:当它的数组元素是引用数据类型时,它就是一个多维数组.比如,在一个数组中它的某个元素值其实是一个一维数组,而其他不同的元素也各自包含了一个一维数组,我们就把这个包含很多个一维数组的数组叫做二维数组

  • Java基础语法之二维数组详解

    一.二维数组 进入正题之前.首先为了便于大家理解,我画了一个图: xx枪战游戏中, 我是一个刚刚注册账号的小白,系统送了我两把枪,此时,我的武器库只有这么一层(可以理解为一位数组,枪就是对应的数组中对应的元素) 经过艰苦卓绝的战斗,终于有了一笔钱,现在我打算配置好的游戏装备,我现在有了一个枪柜,它可以存放三层的枪械,每一层都可以放多把武器(这个就是二维数组,有多层,每层都是一个一维数组) 随着游戏时长和我的高超技术,获取游戏装备的效率越来越高了,一个枪柜已经存不下了,于是,我就有了多个枪柜(这个

随机推荐