马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
 本帖最后由 匿名 于 2021-12-14 18:11 编辑  
- #include<stdio.h>
 
 - int M(int a[5][3],int *p);
 
 - int main(void)
 
 - {int a[5][3],i,j,b[3][5],*p;
 
 - p=b[0];
 
 - printf("输入一个二维数组a[5][3]:\n");
 
 - for(i=0;i<5;i++)
 
 -    {printf("第%d行:",i+1);
 
 -     for(j=0;j<3;j++)
 
 -        scanf("%d",&a[i][j]);
 
 -     printf("\n");}
 
 - M(a,p);
 
 - printf("转置后的数组:\n"); 
 
 - for(i=0;i<3;i++)
 
 -     {for(j=0;j<5;j++)
 
 -         printf("%d ",b[i][j]);
 
 -      printf("\n");}}
 
 - int M(int a[5][3],int *p)
 
 - {int i,j;
 
 - for(i=0;i<3;i++)
 
 -     {for(j=0;j<5;j++)
 
 -         {*p=a[j][i];
 
 -           p++;}}
 
 - return 0;} 
 
  复制代码 
- #include <stdio.h>
 
  
- void transpose(int m, int n, int arr[m][n], int res[n][m]){
 
 -     for(int i = 0; i < n; i++)
 
 -     for(int j = 0; j < m; j++)
 
 -     res[i][j] = arr[j][i];
 
 - }
 
  
- int main()
 
 - {
 
 -     int m, n;
 
 -     
 
 -     scanf("%d%d", &m, &n);
 
 -     int arr[m][n], res[n][m];
 
  
 
-     for(int i = 0; i < m; i++)
 
 -     for(int j = 0; j < n; j++)
 
 -     scanf("%d", &arr[i][j]);
 
  
-     transpose(m, n, arr, res);
 
  
-     for(int i = 0; i < n; i++){
 
 -     for(int j = 0; j < m; j++)
 
 -     printf("%2d ", res[i][j]);
 
 -     printf("\n");}
 
  
-     return 0;
 
 - }
 
  复制代码 
 
 
 |