C++ 求将一个4*4的二维数组旋转90度的算法
答案:1 悬赏:30 手机版
解决时间 2021-02-04 19:26
- 提问者网友:椧運幽默
- 2021-02-04 09:28
C++ 求将一个4*4的二维数组旋转90度的算法
最佳答案
- 五星知识达人网友:过活
- 2021-02-04 10:50
#include
void change_adobe (int a[][4])
{
int t[4][4];
int i,j;
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
t[j][3-i]=a[i][j];
}
}
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
a[i][j]=t[i][j];
}
}
}
void main()
{
int a[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
change_adobe(a);
for(int i=0;i<4;i++)
{
for(int j=0;j<4;j++)
{
printf("%3d",a[i][j]);
}
printf("\n");
}
}
13 9 5 1
14 10 6 2
15 11 7 3
16 12 8 4
请按任意键继续. . .追问void change_adobe (void)
{
bool store[4][4];
int x,y;
bool *n=0;
memcpy(store,adobe,16);
n = &store[0][0];
for (y=0;y<4;y++)
for (x=3;x>=0;x--)
{
adobe[x][y]=*n++;
}
memset(store,0,16);
}
void change_adobe (int a[][4])
{
int t[4][4];
int i,j;
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
t[j][3-i]=a[i][j];
}
}
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
a[i][j]=t[i][j];
}
}
}
void main()
{
int a[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
change_adobe(a);
for(int i=0;i<4;i++)
{
for(int j=0;j<4;j++)
{
printf("%3d",a[i][j]);
}
printf("\n");
}
}
13 9 5 1
14 10 6 2
15 11 7 3
16 12 8 4
请按任意键继续. . .追问void change_adobe (void)
{
bool store[4][4];
int x,y;
bool *n=0;
memcpy(store,adobe,16);
n = &store[0][0];
for (y=0;y<4;y++)
for (x=3;x>=0;x--)
{
adobe[x][y]=*n++;
}
memset(store,0,16);
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯