c语言用convert函数求矩阵的转置

||参考代码如下:
#include<stdio.h>
int A[10][10]={0};
void convert(int a[][10], int *m, int *n)
{
int i,j,t;
for(i=0;i<*m;++i)
for(j=i;j<*n;++j){
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
t=*m;
*m=*n;
*n=t;
}
int main()
{
int i,j,m,n;
scanf("%d%d",&m,&n);
if(m>10||n>10)
return 0;
for(i=0;i<m;++i)
for(j=0;j<n;++j)
scanf("%d",&A[i][j]);

convert(A,&m,&n);

for(i=0;i<m;++i){
for(j=0;j<n;++j)
printf("%d ",A[i][j]);
printf("\n");
}
return 0;
}

㈡ c语言 任意输入一个矩阵 求它的转置(用指针)

#include <stdio.h> #include <stdlib.h> void Transpose(int **p,int **q,int m,int n); void main() { int i,j, m,n,**p,**q; printf("Input lie and hang:\n"); scanf("%d%d",&m,&n); p=(int**)malloc(m*sizeof(int*)); for(i=0; i<m; i++) { p[i]=(int*)malloc(n*sizeof(int)); } printf("Input %d yuansu:\n",m*n); for(i=0; i<m; i++) { for(j=0; j<n; j++) { scanf("%d",&p[i][j]); } } for(i=0;i<m;i++) { for(j=0;j<n;j++) { printf("%4d",p[i][j]); } printf("\n"); } q=(int**)malloc(n*sizeof(int*)); for(i=0; i<n; i++) { q[i]=(int*)malloc(m*sizeof(int)); } Transpose(p,q,m,n); printf("Transpose....:\n"); for(i=0;i<n;i++) { for(j=0;j<m;j++) { printf("%4d",q[i][j]); } printf("\n"); } } //函数功能: 将矩阵转置 //函数参数: 指针,矩阵的行数和列数 //函数返回值:无 void Transpose(int **p,int **q,int m,int n) { int i,j; for(i=0;i<n;i++) { for(j=0;j<m;j++) { q[i][j]=p[j][i]; } } }

㈢ C语言求转置矩阵

代码看起来没什么问题
检查一下是不是你项目里面加了其它文件
或者重建一个project

㈣ c语言用指针求矩阵转置~

int *p1[N] 定义的是一个指针数组,而你传进去的参数a却是一个指针(地址).。参数类型不一版致,还权有就是, trans()函数没有返回b数组,所以main()函数中打印的b数组是空的。至于这个*(*(p2+j)+i)=*(*(p1+i)+j); 我没深究,你自己再看看吧

㈤ C语言,求3×3矩阵的转置矩阵(在自身进行转置)

#include<stdio.h>
void main(){
int a,b;
int c[3][3];
int i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&c[i][j]);
printf("转置前矩阵为\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
printf("%d ",c[i][j]);
if(j==2)
printf("\n");
}
printf("转置后矩阵为\n");
for(i=0;i<2;i++)
for(j=1;j<3;j++)
{
a=c[i][j];
b=c[j][i];
c[i][j]=b;
c[j][i]=a;
}

for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
printf("%d ",c[i][j]);
if(j==2)
printf("\n");
}}
你把数组定义错了,前面刚定义了一个整型的a后面又把a拿来当做数组名,这样的话编译器会报错的。你这个代码稍微帮你改了下,你看现在是不是好点了。

㈥ c语言 矩阵转置的编写

#include "stdio.h"
void main()
{
void zhuan(int array[2][3],int b[3][2]);
int array[2][3],b[3][2]; int i,j;
printf("input:\n");
for(i=0;i<2;i++)
for(j=0;j<3;j++)
{
scanf("%d",&array[i][j]);
}
printf("\n");
zhuan(array,b);
printf("\n");
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
printf("%d",b[i][j]);
printf("\n");
}
}
void zhuan(int array[2][3],int b[3][2]) //转置函数逻辑错误,没那么麻烦,直专接转就是了!属
{
int i,j;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
{
b[j][i]=array[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;
}