类编程:矩阵的移动。
时间: 1ms 内存:128M
描述:
设a为M行N列的数组,将a的中的每个元素右移一列。主函数已给出,提交程序的其它部分即可。
int main()
{
int x[M][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
TDarray arr(x);
arr.move();
arr.print();
return 0;
}
输入:
主程序已给出。
输出:
移动后的矩阵。
示例输入:
示例输出:
4123
8567
1291011
提示:
参考答案(内存最优[1088]):
#include<stdio.h>
#define PI 3.14
int main()
{
printf("4123\n");
printf("8567\n");
printf("1291011\n");
return 0;
}
参考答案(时间最优[0]):
#include<iostream>
using namespace std;
#define M 3
#define N 4
class TDarray
{int a[M][N];
public:
TDarray(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 move();
void print()
{
int i,j;
for(i=0;i<M;i++)
{ for(j=0;j<N;j++)
cout<<a[i][j];
cout<<endl;
}
}
};
void TDarray::move()
{int i,j,t;
for(i=0;i<M;i++)
{
t=a[i][N-1];
for(j=N-2;j>=0;j--)
a[i][j+1]= a[i][j];
a[i][0]=t;
}
}
int main()
{
int x[M][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
TDarray arr(x);
arr.move();
arr.print();
return 0;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。