将一个4×4的数组进行逆时针旋转90度后输出,要求原始数组的每个数据都不能相同。
代码及运行结果如下:
法一:
#include <stdio.h>
int main()
{
int a[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};
int b[4][4];
int i,j;
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
if(i==0)
{
b[i][j]=a[j][3];
}
else if(i==1)
{
b[i][j]=a[j][i+1];
}
else if(i==2)
{
b[i][j]=a[j][i-1];
}
else
{
b[i][j]=a[j][0];
}
}
}
for(i=0;i<4;i++)
{
printf("%d\t%d\t%d\t%d\n",b[i][0],b[i][1],b[i][2],b[i][3]);
}
return 0;
}
其中的if-else if-else语句可以用switch语句代替
法二:
#include <stdio.h>
int main()
{
int a[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};
int b[4][4];
int i,j;
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
b[3-j][i]=a[i][j];
}
}
for(i=0;i<4;i++)
{
printf("%d\t%d\t%d\t%d\n",b[i][0],b[i][1],b[i][2],b[i][3]);
}
return 0;
}
运行结果:
原始数组打印结果: