C语言编了一个任意行列矩阵转置的程序,但为什么转置后的矩阵不输出呢

代码:#include<stdio.h>#include<stdlib.h>voidtran(float**c,intm,intn){inti,j;float**b;b=... 代码:
#include<stdio.h>
#include<stdlib.h>
void tran(float **c,int m,int n)
{
int i,j;
float **b;
b=(float **)malloc(n*sizeof(float));
for(i=0;i<n;i++)
b[i]=(float *)malloc(m*sizeof(float));
for(i=0;i<m;i++)
for(j=0;j<n;j++)
b[i][j]=c[j][i];
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
printf("%4.0f",b[i][j]);
printf("\n");
}
}
int main()
{
float **p;
int i,j,m,n;
printf("请分别输入需转置矩阵的行数m与列数n:");
scanf("%d%d",&m,&n);
p=(float **)malloc(m*sizeof(float));
for(i=0;i<m;i++)
p[i]=(float *)malloc(n*sizeof(float));
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
scanf("%f",*(p+i)+j);
if(i==0&&j==0)printf("矩阵:\n");
printf("%4.0f",p[i][j]);
}
printf("\n");
}
printf("转置矩阵:\n");
tran(p,m,n);
return 0;
}
展开
 我来答
百觉觉
2018-09-08 · TA获得超过172个赞
知道小有建树答主
回答量:323
采纳率:63%
帮助的人:250万
展开全部

tran函数有问题,两个for循环嵌套赋值出现数组越界,程序中途退出。
参考修改

追问
额嗯,谢谢了我检查好几遍也没发现只是个低级错误
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式