c语言编程m行n列的矩阵转置

我目前写成这样(没写完,转换那部分不知道怎么写了。麻烦补充下
#include<stdio.h>
main()
{
int a[4][4],b[4][4]; ← 数组可自由定义。
int i,j,m,n,k;
printf("请为数组赋值:");
for(i=0;i<4;i++)
for(j=0;j<4;j++)
scanf("%d%d",&a[i][j],&b[i][j]);
printf("请输入你想交换的行和列:")
scanf("%d%d",&m,&n);
for(k=0,i=0;k<m;k++) ←没错就是这里后我写不来了。
a[][]
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
printf("%3d",a[i][j]);
}
}


#include<stdio.h
main()
{
  int a[4][4],b[4][4];
  int i,j,m,n,k;
  printf("请为数组赋值:\n");
  for(i=0;i<4;i++)
     for(j=0;j<4;j++)
        scanf("%d",&a[i][j]);

  /*输出a*/
   for(i=0;i<4;i++)
    {
     for(j=0;j<4;j++)
        printf("%3d ",a[i][j]);
    printf("\n");
    }

  /*把a转置以后保存到b*/
  for(i=0;i<4;i++)
     for(j=0;j<4;j++)
        b[j][i] =a[i][j];

  printf("\n\n");

  /*输出b*/
  for(i=0;i<4;i++)
    {
     for(j=0;j<4;j++)
        printf("%3d ",b[i][j]);
    printf("\n");
    }
}

追问

那个,老哥,我想要的不是把全部行和列互换,是替换想要的一列和一行。

那个,老哥,我想要的不是把全部行和列互换,是替换想要的一列和一行。

追答#include "stdio.h"

main()
{
  int a[4][4],b[4][4];
  int i,j,m,n,k;
  printf("请为数组赋值:\n");
  for(i=0;i<4;i++)
     for(j=0;j<4;j++)
        scanf("%d",&a[i][j]);
 
  /*输出a*/
   for(i=0;i<4;i++)
    {
     for(j=0;j<4;j++)
        printf("%3d ",a[i][j]);
    printf("\n");
    }
 
  /*给b数组赋值*/
  for(i=0;i<4;i++)
     for(j=0;j<4;j++)
        b[j][i] =i+10;
 
  printf("\n\n");
 
  /*输出b*/
  for(i=0;i<4;i++)
    {
     for(j=0;j<4;j++)
        printf("%3d ",b[i][j]);
    printf("\n");
    }

  /*交换指定的行*/
  printf("请输入交行的行号:\n");
  scanf("%d",&n);
  for(j=0;j<4;j++)
  {
    k=a[n][j];
    a[n][j]=b[n][j];
    b[n][j]=k;
  }


  /*输出交换后的a*/
  printf("\n\n");
  for(i=0;i<4;i++)
    {
     for(j=0;j<4;j++)
        printf("%3d ",a[i][j]);
    printf("\n");
    }


  /*输出交换后的b*/
  printf("\n\n");
  for(i=0;i<4;i++)
    {
     for(j=0;j<4;j++)
        printf("%3d ",b[i][j]);
    printf("\n");
    }
}

温馨提示:内容为网友见解,仅供参考
无其他回答

c语言编程m行n列的矩阵转置
include<stdio.h> main(){ int a[4][4],b[4][4]; int i,j,m,n,k; printf("请为数组赋值:\\n"); for(i=0;i<4;i++) for(j=0;j<4;j++) scanf("%d",&a[i][j]); \/*输出a*\/ for(i=0;i<4;i++) { for(j=0;j<4;j++) printf("%3...

c语言 m*n阶矩阵转置
printf("原矩阵为:\\n");for(i=0;i<m;i++){ for(j=0;j<n;j++)printf("%3d",a[i][j]);printf("\\n");} printf("转置矩阵为:\\n");for(i=0;i<n;i++){ for(j=0;j<m;j++)printf("%3d",b[i][j]);printf("\\n");} } 够简单了吧!

求M*N矩阵的转置 用c语言 指针 写
define M 5 define N 4 int main(){ int A[M][N]={ {5, 6, 8, 9},{4, 2, 3, 1},{3, 2, 5, 8},{1, 2, 5, 9},{2, 6, 3, 7} };int B[N][M]={0};for(int i=0;i<M;i++){ for (int j=0;j<N;j++){ printf("%d ",*( *(A+i)+j ) );...

用C语言编写一个矩阵转置的函数,矩阵的行数和列数在程序中由用户输入...
矩阵行指针初值指向每行首地址,迭代依次取所有行指针指向值组成新行,所有行指针自增。最终组合新的矩阵。include <stdio.h>#include <malloc.h>int **getList(int row,int clo);\/\/获取矩阵地址空间void setNum(int **nList,int n);\/\/填写数值void prtList(int **nList,int row,int clo);\/...

c语言矩阵转制问题
不是只有n~n型的转制,mxn的任意行数和列数的矩阵均可转置 include <stdio.h> define M_LEN 4 #define N_LEN 6int matrix[M_LEN][N_LEN]= { {11,22,33,44,67,89}, {55,66,77,88,56,89}, {10,20,30,40,34,32}, {50,60,70,80,56,72}, };void main() { ...

C语言 ,求转置矩阵
根据数学定义可以知道,对于矩阵P,其第m行n列上的元素,是其转置矩阵的n行m列元素。从此可以得出程序如下:define M 10#define N 5 \/\/以10行5列为例,可以任意修改。void convert(int a[M][N], int b[N][M])\/\/求a的转置矩阵,结果存于b中。{ int i,j; for(i = 0; i <M...

c语言用指针求矩阵转置~
在C语言中,矩阵转置问题通过指针解决的方法有很多。首先,定义一个指针数组 int*p1[N],这里的N代表矩阵的行数。然而,当您传入参数a时,实际上传入的是一个指针,而非一个数组。这种参数类型不一致,导致了后续操作的错误。同时,转置函数trans()没有正确返回转置后的矩阵,使得main()函数中打印的...

用C语言编程来求未知行与列的矩阵的转置矩阵
void main(){ void change(int b[][m],int a[][N]);int a[m][N],b[N][m],i,j;printf("please input array:\\n");for(i=0;i<M;i++)for(j=0;j<N;j++)scanf("%d",&a[j]);printf("\\nThe array is:\\n");for(i=0;i<M;i++){ for(j=0;j<N;j++)printf("%...

n阶矩阵求转置矩阵c语言
实现一个程序,通过C语言计算N阶矩阵的转置矩阵。程序首先定义了一个二维数组 Array[MAX][MAX],其中 MAX 为 100,用于存储矩阵元素,以及一个变量 n 用于存储矩阵的阶数。定义一个函数 takePlace(),用于计算矩阵的转置。该函数遍历矩阵,通过交换每一行和每一列的元素,实现转置。主函数 main() 先...

c语言转置矩阵问题
进行转置时,通常涉及双层循环,外部循环遍历矩阵的行,内部循环遍历列。为避免下标越界,确保循环条件中,外部循环范围是0到M-1(或N-1),内部循环范围是0到N-1(或M-1)。如此,即可在循环中安全交换矩阵的元素,实现转置操作。正确执行C语言矩阵转置,需要关注数组维度的匹配以及循环条件的设定。

相似回答