溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

在c++中怎么將二維數(shù)組元素轉(zhuǎn)換逆向存放

發(fā)布時間:2020-11-30 15:07:01 來源:億速云 閱讀:309 作者:Leah 欄目:開發(fā)技術(shù)

這期內(nèi)容當中小編將會給大家?guī)碛嘘P(guān)在c++中怎么將二維數(shù)組元素轉(zhuǎn)換逆向存放,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

1、例如,原始二維數(shù)組為,逆向存放后變?yōu)椤T嚱⒁粋€類REVARR,完成上述工作。

具體要求如下:

(1)私有數(shù)據(jù)成員

int a[M][N]:初始化時存放原始二維數(shù)組,最終存放逆向存放后的二維數(shù)組。

(2)公有成員函數(shù)

REVARR(int x[M][N]):構(gòu)造函數(shù),用形參x初始化數(shù)據(jù)成員a。
void reverse():按題目要求處理二維數(shù)組。
void print():按二維數(shù)組方式輸出a數(shù)組值。

(3)在主函數(shù)中完成對該類的測試。在程序的開頭,定義符號常數(shù)M和N的值分別為3和4,表示數(shù)組的行數(shù)和列數(shù)。在主函數(shù)中定義數(shù)組int data[M][N],其初值如上。定義一個REVARR類的對象arr,并用數(shù)組data初始化該對象的成員a,輸出原數(shù)組值,然后調(diào)用成員函數(shù)逆序存放二維數(shù)組,最后輸出逆序后的二維數(shù)組。

#include "stdafx.h"
#include<iostream>
#define M 3
#define N 4
using namespace std;
class REVARR
{
public:
	REVARR(int x[M][N]);//:構(gòu)造函數(shù),用形參x初始化數(shù)據(jù)成員a。
  void reverse();//:按題目要求處理二維數(shù)組。
  void print();//:按二維數(shù)組方式輸出a數(shù)組值。
private:
	int a[M][N];//:初始化時存放原始二維數(shù)組,最終存放逆向存放后的二維數(shù)組。
};
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<<"轉(zhuǎn)換后\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列數(shù):\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()函數(shù),實現(xiàn)數(shù)組元素逆序存放。在主函數(shù)中輸入n個整數(shù),調(diào)用reverse()函數(shù)將它們逆序存放,最后輸出逆序后的結(jié)果

利用指針

#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的個數(shù):");
	scanf("%d",&n);
	printf("請輸入%d個整數(shù):",n);
	for(i=0;i<n;i++)
	scanf("%d",&b[i]);
	reverse(b,n);
	printf("%d個數(shù)組逆序后的結(jié)果:\n",n);
	for(i=0;i<n;i++)
	printf("%d\t",b[i]);
	printf("\n");
	return 0;
}

上述就是小編為大家分享的在c++中怎么將二維數(shù)組元素轉(zhuǎn)換逆向存放了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI