为了账号安全,请及时绑定邮箱和手机立即绑定

如何实现将3*3的二维数组表示的方阵进行顺时针旋转90°函数rotate()?

如何实现将3*3的二维数组表示的方阵进行顺时针旋转90°函数rotate()?

C
函数式编程 2022-07-09 11:07:17
并编写主函数验证之。例如,rotate()函数将数组11 22 3344 55 6677 88 99变为:77 44 1188 55 2299 66 33
查看完整描述

2 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

#include "stdlib.h"
void rotate(int (*a)[3])
{
int i,j;
int temp[3][3];
for (i=0;i<3;i++)
{
for (j=0;j<3;j++)
temp[j][2-i]=a[i][j];
}
for (i=0;i<3;i++)
{
for (j=0;j<3;j++)
a[i][j]= temp[i][j];
}
}
main()
{
int i,j;
int a[3][3]= {11,22,33, 44,55,66, 77,88,99};
rotate(a);
printf(“after transform\n”);
for (i=0;i<3;i++)
{
for (j=0;j<3;j++)
printf(“%d\t”,a[i][j]);
}


查看完整回答
反对 回复 2022-07-11
?
阿晨1998

TA贡献2037条经验 获得超6个赞

#include "stdlib.h"

void rotate(int* data)
{
int t;
t = data[0];
data[0] = data[6];
data[6] = data[8];
data[8] = data[2];
data[2] = t
t = data[1];
data[1] = data[3];
data[3] = data[7];
data[7] = data[5];
data[5] = t;
}

int main()
{
int data[9] = {11,22,33,
44,55,66,
77,88,99};
printf("原来的:");
printf("%i %i %i\r\n",data[0],data[1],data[2]);
printf("%i %i %i\r\n",data[3],data[4],data[5]);
printf("%i %i %i\r\n",data[6],data[7],data[8]);

rotate(data);

printf("旋转后的:");
printf("%i %i %i\r\n",data[0],data[1],data[2]);
printf("%i %i %i\r\n",data[3],data[4],data[5]);
printf("%i %i %i\r\n",data[6],data[7],data[8]);
}


查看完整回答
反对 回复 2022-07-11
  • 2 回答
  • 0 关注
  • 174 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信