|
发表于 2021-9-20 18:58:35
|
显示全部楼层
本帖最后由 jhq999 于 2021-9-20 19:02 编辑
- void
- TransposeMatri(int **array,int n){//全部转置
- for(int i=0;i<n;i++)
- for(int j=0;j<n;j++){
- if(j>i)//主副三角
- swap(array[i][j],array[j][i]);
- }
- }
- void
- Block_transpose(int **array,int n){ //分块转置///////////////////////////////////////////////////这个函数没有用
- int k =4;\\\\\\\\\\\\k=2出错
- for(int i=0;i<n;i+=k)
- for(int j=0;j<n;j+=k)
- TransposeMatri((int**)((int*)array+i*k+j),k);//这里怎么指向分块的二维数组呢
- }
- int main(){
- int **a= new int *[4];
- for(int i=0;i<4;i++)
- a[i]=new int [4];
-
- for (int i = 0; i < 4; i++)
- {
- for (int j = 0; j < 4; j++)
- {
- a[i][j]=i*4+j;
- }
- }
- for(int i=0;i<4;i++){
- for(int j=0;j<4;j++)
- cout<<a[i][j]<<' ';
- cout<<endl;
- }
- //Block_transpose(a,4);/////////这个函数没有用
- TransposeMatri (a,4);
- for(int i=0;i<4;i++){
- for(int j=0;j<4;j++)
- cout<<a[i][j]<<' ';
- cout<<endl;
- }
-
-
- return 0;
- }
复制代码 |
|