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("%dt",b[i]); printf("n"); return 0; }
到此这篇关于c++中将二维数组元素变换为逆向存放的实现代码的文章就介绍到这了,更多相关c++二维数组元素逆向存放内容请搜索<计算机技术网(www.ctvol.com)!!>以前的文章或继续浏览下面的相关文章希望大家以后多多支持<计算机技术网(www.ctvol.com)!!>!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/596542.html