如何将C语言中二维数组元素逆向存放的代码改写成长尾?

2026-04-19 03:361阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计971个文字,预计阅读时间需要4分钟。

如何将C语言中二维数组元素逆向存放的代码改写成长尾?

c#include

// 定义一个类REVARR,用于实现逆序存储二维数组的功能class REVARR {private: int a[100][100]; // 假设最大为100x100的二维数组

public: // 构造函数,初始化数组 REVARR(int M, int N, int arr[M][N]) { for (int i=0; i

// 逆序存储函数 void reverse() { for (int i=0; i <100; i++) { for (int j=0; j < 100; j++) { printf(%d , a[99-i][99-j]); } printf(\n); } }};

int main() { // 假设有一个二维数组 int M=3, N=4; int original[3][4]={{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};

// 创建REVARR对象并传入原始数组 REVARR revArr(M, N, original);

如何将C语言中二维数组元素逆向存放的代码改写成长尾?

// 输出逆序后的数组 revArr.reverse();

return 0;}

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++二维数组元素逆向存放内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!

本文共计971个文字,预计阅读时间需要4分钟。

如何将C语言中二维数组元素逆向存放的代码改写成长尾?

c#include

// 定义一个类REVARR,用于实现逆序存储二维数组的功能class REVARR {private: int a[100][100]; // 假设最大为100x100的二维数组

public: // 构造函数,初始化数组 REVARR(int M, int N, int arr[M][N]) { for (int i=0; i

// 逆序存储函数 void reverse() { for (int i=0; i <100; i++) { for (int j=0; j < 100; j++) { printf(%d , a[99-i][99-j]); } printf(\n); } }};

int main() { // 假设有一个二维数组 int M=3, N=4; int original[3][4]={{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};

// 创建REVARR对象并传入原始数组 REVARR revArr(M, N, original);

如何将C语言中二维数组元素逆向存放的代码改写成长尾?

// 输出逆序后的数组 revArr.reverse();

return 0;}

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++二维数组元素逆向存放内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!