tc指针的指针,急!

lcaamtb 2003-10-20 01:45:53
编了一个tc程序,求助!
输入一个n×(p+1)矩阵,要求输出其转置矩阵,并且转置用函数实现!

#include "stbio.h"
//矩阵转置函数
zhuanzhi(int **x,int n,int m)
int **y,i,j;
{
//为y分配m×n的内存空间;

//转置
for(i=0;i<m;i++)
for(j=0;j<n;j++)
y[i][j]=x[j][i];
return(y);
free(y);
}
main()
int **x,**x_zhuanzhi;
{
//输入n,p
scanf("%d%d",&n,&p);
//为x,x_zhuanzhi分配内存空间
x=(int**)malloc(sizeof(int*)*n);
for (i=0;i<n;i++)
{
x[i]=(int *)malloc(sizeof(int)*(p+1));
}
x_zhuanzhi=(int**)malloc(sizeof(int*)*(p+1));
for(i=0;i<=p;i++)
x_zhuanzhi[i]=(int*)malloc(sizeof(int)*n);

//输入矩阵x;
for(i=0;i<n;i++)
for(j=0;j<=p;j++)
scanf("%d",&x[i][j]);

//求矩阵x的转置矩阵;
x_zhuanzhi=zhuanzhi(x,n,(p+1));

//输出转置矩阵
free(x);
free(x_zhuanzhi);
}

请告诉我错在哪里,并且输入矩阵x时候,如果矩阵元素不是int型,而是double型,应该如何分配空间,我有试过直接将int修改为double但是输入x的时候会出错!

...全文
122 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lcaamtb 2003-10-21
  • 打赏
  • 举报
回复
wyd124(鱼日) 多谢了,可以了!再问一下,可否把你的联系方式给我,真想好好谢谢你!
wyd124 2003-10-21
  • 打赏
  • 举报
回复
行了,,程序如下::
#include "stdio.h"
#include <stdlib.h>
#include <malloc.h>
#include "time.h"
//矩阵转置函数
double **zhuanzhi(double **x,int n,int m)

{ double **y;
int i,j;
//为y分配m×n的内存空间;
y=(double **)malloc(sizeof(double*)*m);
for (i=0;i<m;i++)
{
y[i]=(double *)malloc(sizeof(double)*(n)); ////
}
//转置
for(i=0;i<m;i++)
for(j=0;j<n;j++)
y[i][j]=x[j][i];
return(y);
free(y);
}
void main()

{
double **x,**x_zhuanzhi;
// double x[2][2];
int n,p; //输入n,p
scanf("%d%d",&n,&p);
//为x,x_zhuanzhi分配内存空间
x=(double**)malloc(sizeof(double*)*n);
for (int i=0;i<n;i++)
{
x[i]=(double *)malloc(sizeof(double)*(p+1));
}
x_zhuanzhi=(double**)malloc(sizeof(double*)*(p+1));
for(i=0;i<=p;i++)
x_zhuanzhi[i]=(double*)malloc(sizeof(double)*n);

//输入矩阵x;
float a; ////////此处********************************************
for(i=0;i<n;i++)
for(int j=0;j<=p;j++)
{
scanf("%f",&a);
x[i][j]=(double)a; //**************************************此处
//进行数据类型转换
}
for (i=0;i<n;i++)
{for(int j=0;j<=p;j++)
printf("%f",x[i][j]);
printf("\n");}
//求矩阵x的转置矩阵;
x_zhuanzhi=zhuanzhi(x,n,(p+1));

//输出转置矩阵
for (int k=0;k<=p;k++)
{for (int l=0;l<n;l++)
printf("%1.1f ",x_zhuanzhi[k][l]);
printf("\n");}
free(x);
free(x_zhuanzhi);



}
ghyd 2003-10-21
  • 打赏
  • 举报
回复
你这个函数头有问题吧????
zhuanzhi(int **x,int n,int m)
int **y,i,j;

应该改成:
zhuanzhi(int **x,int n,int m)
int **x,n,m;

或者:
zhuanzhi(x, n, m)
int **x,n,m;
wyd124 2003-10-21
  • 打赏
  • 举报
回复
可能和scanf("%d",&x[i][j]);中输入控制有关,,把double换成float,读入语句写成:
scanf("%f",&x[i][j]);程序可以执行??
lcaamtb 2003-10-20
  • 打赏
  • 举报
回复
哪位熟悉的人可否提醒一下,如何输入double型的矩阵?
wyd124 2003-10-20
  • 打赏
  • 举报
回复
输入double好像不行
wyd124 2003-10-20
  • 打赏
  • 举报
回复
把你的程序修改如下,可以在vc下执行。你的矩阵的坐标有问题,仔细看看。double型也可。


#include "stdio.h"
#include <stdlib.h>
#include <malloc.h>
//矩阵转置函数
double **zhuanzhi(double **x,int n,int m)

{double **y;
int i,j;
//为y分配m×n的内存空间;
y=(double **)malloc(sizeof(double*)*m);
for (i=0;i<m;i++)
{
y[i]=(double *)malloc(sizeof(double)*(n)); ////
}
//转置
for(i=0;i<m;i++)
for(j=0;j<n;j++)
y[i][j]=x[j][i];
return(y);
free(y);
}
void main()

{
double **x,**x_zhuanzhi;
int n,p; //输入n,p
scanf("%d%d",&n,&p);
//为x,x_zhuanzhi分配内存空间
x=(double**)malloc(sizeof(double*)*n);
for (int i=0;i<n;i++)
{
x[i]=(double *)malloc(sizeof(double)*(p+1));
}
x_zhuanzhi=(double**)malloc(sizeof(double*)*(p+1));
for(i=0;i<=p;i++)
x_zhuanzhi[i]=(double*)malloc(sizeof(double)*n);

//输入矩阵x;
for(i=0;i<n;i++)
for(int j=0;j<=p;j++)
scanf("%d",&x[i][j]);

//求矩阵x的转置矩阵;
x_zhuanzhi=zhuanzhi(x,n,(p+1));

//输出转置矩阵
for (int k=0;k<=p;k++)
{for (int l=0;l<n;l++)
printf("%d",x_zhuanzhi[k][l]);
printf("\n");}
free(x);
free(x_zhuanzhi);
}
国际学术期刊Science/AAAS和英特尔在全球首次联袂推出第一季《架构师成长计划》以来,吸引了无数架构师踊跃参与,获得业内广泛赞誉。为持续助力架构师把握数智机遇,构建未来,第二季《架构师成长计划》全新升级,强势归来!业内顶尖架构师大咖齐聚,为架构师群体量身打造系统成长课程,带来涵盖云游戏、云原生、联邦学习、生信大数据、算力网络、云网融合等多个热门话题的前沿技术及案例实践。第一期:超视频时代 音视频架构建设与演进复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=298&tc=yxq0921l2d&frm=csdn_2第二期:转化医学研究背景下的高性能计算平台复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=311&tc=pzw21rx59o&frm=csdn_2第三期:联邦学习的研究与应用实践复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=315&tc=0e8trfvt8i&frm=csdn_2第四期:用架构思维为云原生做减法复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=316&tc=i2kgf55ggn&frm=csdn_2第五期:网络智能化技术与演进复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=322&tc=ckhvmonqvb&frm=CSDN_2第六期:异构计算 数据中心“芯”变革复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=325&tc=mzppx1h6ri&frm=csdn_2第七期:筑算力,话东西复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=327&tc=gwb7n8x79n&frm=csdn_2第八期:AI驱动的生命科学创新范式之变复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=328&tc=zircyqwy9u&frm=csdn_2第九期:软硬一体实现数据库性能优化复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=348&tc=4a46kfrb0o&frm=csdn_2第十期:AI规模化应用时代的深度学习平台构建复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=349&tc=fm9a1mrumb&frm=csdn_2

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧