c语言题输入一个M*N的整形矩阵,求其转置矩阵(MN由键盘输出)。

如题所述

#include <stdio.h>    
     
int main()   
{   
    int M,N;
    printf("输入:\n");
    scanf("%d %d",&M,&N);
    int a[M][N];
    int i,j;
    
    for (i=0;i<M;i++)
     for (j=0;j<N;j++)
     scanf("%d",&a[i][j]);
    
    printf("输出:\n");
    for (j=0;j<N;j++)
    {
     for (i=0;i<M;i++)
     {
     printf("%d",a[i][j]);
     if(i<M-1)
     printf(" ");
     }
     printf("\n");
}
    
    return 0;
}

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-02-28
#include<stdio.h>
void main()
{
int M,N;
scanf("%d%d",&M,&N);
int a[M][N],b[N][M];
int i,j;
for(i=0;i<M;i++)
    for(j=0;j<N;j++)
    {  scanf("%d",&a[i][j]);
       b[j][i]=a[i][j];
       }

   for(i=0;i<N;i++)
    {  for(j=0;j<M;j++)
   printf("%d ",b[i][j]);
   printf("\n");
    }
 }

至少给个赞,O(∩_∩)O谢谢

追问

我试了一下main must return int

追答

我可以啊,你实在不行就void删掉

追问

不知道为什么我换了台电脑重试下错误太多了

本回答被提问者和网友采纳
第2个回答  2016-12-17
你这个m ,n由 键盘输入,根本不是普通人可以做的。
首先你要学了动态分配,malloc 函数。
这还不够,二维动态数据更加麻烦。

自己改的题目吧
M,N 用 #define M 9 宏定义

c语言题输入一个M*N的整形矩阵,求其转置矩阵(MN由键盘输出)。
include <stdio.h> int main() { int M,N; printf("输入:\\n"); scanf("%d %d",&M,&N); int a[M][N]; int i,j; for (i=0;i<M;i++) for (j=0;j<N;j++) scanf("%d",&a[i][j]); printf("输出:\\n"); for (j=0;j<N...

求M*N矩阵的转置 用c语言 指针 写
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 ) );( *(B+j)...

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("%...

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

n阶矩阵求转置矩阵c语言
为了实现n阶矩阵的转置矩阵,本程序利用了C语言进行编写。程序首先定义了一个二维数组Array,其大小为MAX*MAX,用于存储矩阵数据。数组的大小MAX被定义为100,以适应较大的矩阵。接下来,通过函数takePlace()对矩阵进行转置操作。在函数内部,采用双重循环进行遍历,循环变量i和j分别代表矩阵的行和列。通过...

怎么用C语言求转置矩阵(一维数组)
设数组是MxN int transpos(const int from[M*N], int to[M*N]){ for (int i=0;i<M;i++) for (int j=0;j<N;j++)to[j*N+i]=from[i*N+j];return 1;}

用C语言编程来求未知行与列的矩阵的转置矩阵
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("%5d",a[j]);p...

用C语言编写一个矩阵转置的函数,矩阵的行数和列数在程序中由用户输入...
int row,clo,**nList=NULL,**nListSave=NULL; printf("输入矩阵行列数:"); scanf("%d%d",&row,&clo); nList=getList(row,clo); setNum(nList,row*clo); printf("输入的矩阵为:\\n"); prtList(nList,row,clo); printf("转置后的矩阵为:\\n")...

...要求对矩阵的转置变换。 对于输入的矩阵A,要求输出A的转置矩阵...
printf("转置后:\\n");rp(as,r,c);for(i=0;i<r;i++){ free(as[i]);} free(as);} 输入矩阵的行和列,用空格分开:5 6 转置前:94 90 24 5 20 80 22 60 41 18 47 28 0 96 26 1 65 85 20 5 5 90 87 14 71 43 64 96 65...

c语言:请编写一个函数,可调用它来计算m*n矩阵与n*m矩阵的积。主函数...
int array_a[maxsize][maxsize],array_b[maxsize][maxsize],array_c[maxsize][maxsize],array_d[maxsize][maxsize];printf("请输入第一个矩阵的行数m(1-%d)和列数n(1-%d):\\n",maxsize,maxsize);scanf("%d %d",&m,&n);printf("请输入A矩阵(%d*%d):\\n",m,n);for(i=0;i<...

相似回答