一道编程题~~~~~不会~

来源:百度知道 编辑:UC知道 时间:2024/09/23 04:21:44
1. 编写一个实现将3*3的二维数组表示的方阵进行顺时针旋转90°函数rotate(),并编写主函数验证之。
例如,rotate()函数将数组
11 22 33
44 55 66
77 88 99
变为:
77 44 11
88 55 22
99 66 33

#include <iostream.h>
const int max(3);
void display(int m[max][max],int size){
for(int i=0;i<size;i++){
for(int j=0;j<size;j++)
cout<<m[i][j]<<" ";
cout<<endl;
}
}
void Clockwise(int m[max][max],int size){
int temp;
for(int i=0;i<(size+1)/2;i++){
for(int j=0;j<size/2;j++){
temp=m[i][j];
m[i][j]=m[size-j-1][i];
m[size-j-1][i]=m[size-i-1][size-j-1];
m[size-i-1][size-j-1]=m[j][size-i-1];
m[j][size-i-1]=temp;
}
}
}

void AntiClockwise(int m[max][max],int size){
int temp;
for(int i=0;i<(size+1)/2;i++){
for(int j=0;j<size/2;j++){
temp=m[j][size-i-1];
m[j][size-i-1]=m[size-i-1][size-j-1];
m[size-i-1][size-j-1]=m[size-j-1][i];