您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關在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++中怎么將二維數組元素轉換逆向存放了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。