当前位置: 首页 > 编程笔记 >

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

池恩
2023-03-14
本文向大家介绍c++中将二维数组元素变换为逆向存放的实现代码,包括了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++二维数组元素逆向存放内容请搜索小牛知识库以前的文章或继续浏览下面的相关文章希望大家以后多多支持小牛知识库!

 类似资料:
  • 本文向大家介绍 将二维数组行列元素互换,存到另一个数组中。相关面试题,主要包含被问及 将二维数组行列元素互换,存到另一个数组中。时的应答技巧和注意事项,需要的朋友参考一下 【参考答案】

  • 问题内容: 我有, 如图所示这里,我们创建一个从原点的二维之一。但是,如何迭代内部,以便可以在 其中 创建 列索引* 和 行索引 而又不 创建新 索引 呢?我希望将其索引打印到二维数组 (2x5) 时看起来像这样: __ * 我认为这里的主要问题是获取 列索引 和 行索引 而没有创建二维 索引 。是不是 问题答案: 如果要以行为主的顺序,给定row ,column 并且伪造(缺乏更好的术语)带有列

  • 我试图计算2D数组的每个元素,但出于某种原因,我做错了:

  • 问题内容: 我想通过指定2D数组中的列数将一维数组转换为二维数组。可能会像这样工作: numpy是否具有与我的虚构函数“ vec2matrix”相似的功能?(我知道您可以像2D数组一样索引1D数组,但这不是我拥有的代码中的选项- 我需要进行此转换。) 问题答案: 您要阵列。 其中,根据输入数组的大小推断新维的大小。

  • 我打算将2D中布尔数组的值从True更改为false,但代码不起作用。即使我使用语句B[r][c]=false,输出结果也是一样的。有人能帮我吗,谢谢。

  • 本文向大家介绍php实现搜索一维数组元素并删除二维数组对应元素的方法,包括了php实现搜索一维数组元素并删除二维数组对应元素的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php实现搜索一维数组元素并删除二维数组对应元素的方法。分享给大家供大家参考。具体如下: 定义一个一维数组一个二维数组如下 需要实现从$products数组中查找元素是否和数组$fruit元素有交集,如果有的话保留