数组顺时针转 0 ,90 ,180 ,270,并与a0比较

#include <iostream>
#include <stdio.h>
#include <cstring>
#define N 33
using namespace std;
int a0[N][N],a[N][N],b[N][N],c[N][N],d[N][N],temp1[N][N],temp2[N][N];
int comp( int m1[][N],int m2[][N], int a )
{
int n=0,i,j;
for (i=0;i<a;i++)
for (j=0;j<a;j++)
if (m1[i][j]==m2[i][j])
n++;
return n;
}
int main()
{
int n,i,j,maxa;
while (cin>>n)
{
if (n==0)
break;
for (i=0;i<n;i++)
for (j=0;j<n;j++)
cin>>a0[i][j];
for (i=0;i<n;i++)
for (j=0;j<n;j++)
{
cin>>a[i][j];
c[n-1-i][n-1-j]=a[i][j];
temp1[n-1-i][j]=a[i][j];
}
for (i=0;i<n;i++)
for (j=0;j<n;j++)
{
b[i][j]=temp1[j][i];
temp2[n-1-i][j]=c[i][j];
}
for (i=0;i<n;i++)
for (j=0;j<n;j++)
d[i][j]=temp2[j][i];
maxa=comp(a0,a,n);
if (comp(a0,b,n)>maxa)
maxa=comp(a0,b,n);
if (comp(a0,c,n)>maxa)
maxa=comp(a0,c,n);
if (maxa<comp(a0,d,n))
maxa=comp(a0,d,n);
cout<<maxa<<endl;
}
return 0;
}

posted @ 2013-11-09 14:20  单调的幸福  阅读(181)  评论(0编辑  收藏  举报