//放在这里定义,二维数组a 属于全局变量//将二维数组通过指针旋转90度(顺时针转90度)void proc(int buf[N][N],int n){ int i,j,t; int *parr; //指向int类型的指针 parr=&buf[0][0]; //将二维数组看成一维数组 for(i=0;i<=n-1;i++) { for(j=i;j<n-i...
可以,如果如不改写数组,你需要提供一个内联函数。如果需要保存转置,你必须使用第二数组。inline int zhuanzhi(int* list,int n ,int newn, int newh){ newn++,newh++;//n表示数组第一维元素个数,newn表示你调用的转置后的数组的横索引.return list[(n-newn+1)+(newh-1)*n-1]} 你...
数组信息a[x][y],其中的元素a[i][j],是如何变化的;更简单的,画个图应该也能很快明白;其实基...
看看变换90度后的位置变化,再写个函数转换。
直观的算法是动态申请一个同样大小的二维数组,将旋转结果存入,然后再拷贝到原数组并释放临时数组。之所以要动态申请,是考虑到数组较大时别让这个临时用一下的中间数组永久占用内存空间。代码如下:include "stdio.h"#include "stdlib.h"#define N 4int main(int argc,char *argv[]){int m[N][N...
不会。问问老师。