首页 > 试题广场 >

写一个函数,使给定的一个3×3的二维整型数组转置,即行列互换

[问答题]

写一个函数,使给定的一个3×3的二维整型数组转置,即行列互换。

推荐

#include<stdio.h>

#define N 3

int array[N]N];

int main()

{void convert(int array[][3]);

int i,j;

printf("input array:\n");

for(i=0;i<N;i++)

for(j=0;j<N;j++)

scanf("%d",&array[i][j]);

printf("\noriginal array:\n”);

for(i=0;i<N;i++)

{for(j=0;j<N;j++)

printf("%5d",array[i][j]);

printf("\n");

}

convert(array);

printf("convert array:\n");

for(i=0;i<N;i++)

{for(j=0;j<N;j++)

printf("%5d",array[i][j]);

printf("\n”);

}

return 0;

}

void convert(int array[][3])

{int i,j,t;

for(i=0;i<N;i++)

for(j=i+1;j<N;j++)

{t=array[i][j]:

array[i][j]=array[j][i]:

array[j][i]=t

}

}


发表于 2018-03-25 10:40:13 回复(0)
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
void **trans(int **matrix, int dim){
 int length = dim;
 for(int i = 0; i < length ; i ++){
  for(int j = 0; j < length ; j ++){
   if(j > i){
    int tra = matrix[i][j];
    matrix[i][j] = matrix[j][i];
    matrix[j][i] = tra;
   }
  }
 }
}
int main(){
 int** matrix;
 matrix = malloc(sizeof(int*) * 5);
 for(int i = 0; i < 5; i ++){
  matrix[i] = malloc(sizeof(int) * 5);
 }
 int cnt = 1;
 for(int i = 0; i < 5; i ++){
  for(int j = 0; j < 5; j ++){
   matrix[i][j] = cnt;
   cnt ++;
  }
 }
 for(int i = 0; i < 5; i ++){
  for(int j = 0; j < 5; j ++){
   printf("%d ",matrix[i][j]);
  }
  printf("\n");
 }
 trans(matrix,5);
 for(int i = 0; i < 5; i ++){
  for(int j = 0; j < 5; j ++){
   printf("%d ",matrix[i][j]);
  }
  printf("\n");
 }
}
发表于 2020-01-02 10:43:09 回复(0)