C++程序设计矩阵操作 下载本文

cin>>y;

for (t=0;t

for (i=0;i

{x=a[i][n-1]; for (j=n-2;j>=0;j--)

a[i][j+1]=a[i][j];

a[i][0]=x;

}

cout<<\右卷动后的矩阵为:\ output(a);

break;

case 3: // cout<<\请输入需要卷动的行数:\ cin>>y;

for (t=0;t

{x=a[0][i]; for (j=1;j

a[j-1][i]=a[j][i];

a[j-1][i]=x;

}

cout<<\上卷动后的矩阵为:\ output(a);

break;

上卷动11

}

case 4: //下卷动 }

cout<<\请输入需要卷动的行数:\cin>>y;

for (t=0;t

{x=a[n-1][i]; for (j=n-2;j>=0;j--)

a[j+1][i]=a[j][i];

a[0][i]=x;

}

cout<<\下卷动后的矩阵为:\output(a); break;

3.3矩阵旋转

void aa(int a[n][n],int y,int t) {

12

int k,x;

for (k=0;k

{

x=a[t][t];

for (j=1+t;j<5-t;j++)

a[t][j-1]=a[t][j];

for (j=1+t;j<5-t;j++)

a[j-1][4-t]=a[j][4-t];

}

}

for (j=3-t;j>=0;j--)

a[4-t][j+1]=a[4-t][j];

for (j=3-t;j>=1;j--)

a[j+1][t]=a[j][t];

a[1+t][t]=x;

void round(int a[n][n]) {

int k,t,x;

cout<<\操作前的矩阵为:\output(a);

cout<<\退出\cout<<\逆时针旋转\cout<<\顺时针旋转\cout<<\请输入0、1或2\cin>>k; switch(k) {

case 1:cout<<\退出\cout<<\旋转90°\cout<<\旋转180°\cout<<\旋转270°\cout<<\旋转360°\

cout<<\请输入0、1、2、3或4\

13

cin>>t; if (t==0)

break;

if (t==1) { for (i=0;i<5/2;i++) {

k=4-2*i;

aa(a,k,i);

} // cout<<\旋转90°后的矩阵为:\ output(a); break; }

if (t==2) { for (i=0;i<5/2;i++) {

k=2*(4-2*i);

aa(a,k,i);

} // cout<<\旋转180°后的矩阵为:\ output(a);

break;

逆时针旋转90°逆时针旋转180°14