135-1821-9792

c语言用函数实现矩阵转置 c语言用函数实现矩阵转置的条件

用C语言编写一个矩阵转置的函数,矩阵的行数和列数在程序中由用户输入,请问怎么写,非常感谢

我的代码逻辑是:

成都创新互联长期为成百上千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为全州企业提供专业的成都网站设计、成都网站制作,全州网站改版等技术服务。拥有10年丰富建站经验和众多成功案例,为您定制开发。

矩阵行指针初值指向每行首地址,迭代依次取所有行指针指向值组成新行,所有行指针自增。最终组合新的矩阵。

#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);//打印矩阵

int **zz(int **nList,int row,int clo);//转置函数

int main()

{

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");

nListSave=zz(nList,row,clo);

free(nList);

nList=nListSave;

prtList(nList,clo,row);

return 0;

}

int **zz(int **nList,int row,int clo)

{

橘键   孙伍升int *nSave=NULL,**listSave=NULL,**listp=nList,*p=NULL,i,j;

nSave=(int *)malloc(sizeof(int)*row*clo);

listSave=(int **)malloc(sizeof(int*)*clo);//倒置后的矩阵

p=nSave;

for(j=0;jclo;j++)

{

for(i=0;irow;i++)

{

*p++=*listp[i];

listp[i]=listp[i]+1;

}

}

for(i=0;iclo;i++)

listSave[i]=nSave[i*row];

for(i=0;irow;i++)

free(nList[i]);//释放原矩阵行空间

return  listSave;

}

void prtList(int **nList,int row,int clo)

{

int i,j;

for(i=0;irow;i++)

则老   {

for(j=0;jclo;j++)

printf("%d ",nList[i][j]);

printf("\n");

}

}

void setNum(int **nList,int n)

{

int *p=nList[0];

printf("填写矩阵中%d个数值:\n",n);

while(n--0)

scanf("%d",p++);

}

int **getList(int row,int clo)

{

int *nums,**nList,i;

nums=(int *)malloc(sizeof(int)*row*clo);

nList=(int **)malloc(sizeof(int*)*row);

for(i=0;irow;i++)

nList[i]=nums[i*clo];

return nList;

}

c语言如何通过定义函数来转置矩阵?

#include stdio.h

int main()

{ struct aaa

{ int x;

int y;

};

struct aaa t,a[3][3]= {0,0,0,1,0,2,1,0,1,1,1,2,2,0,2,1,2,2};

int i,j;

for(i=0; i3; i++)

{ for(j=0; j3; j++)

printf("[%d,%d]  ",a[i][j].x,a[i][j].y);

printf("\n"芦配册);

}

printf("after:\n");

for(i=0; i3; i++)

for(j=0; ji; j++)

{ t=a[i][j];

a[i][j]=a[j][i];

a[j][i]=t;

}

for(i=0; i3; i++)

{ for(j=0; j3; j++)

printf("[%d,%d]  ",a[i][j].x,a[i][j].y);

陪宏 printf("\n");

}

return 0;

}

或:

#include stdio.h

struct aaa

{ int x;

int y;

};

void zhuanzhi(struct aaa a[][3])

{ struct aaa t;

int i,j;

for(i=0; i3; i++)

for(j=0; ji; j++)

{ t=a[i][j];

a[i][j]=a[j][i];

a[j][i]=t;

}

}

void prt(struct aaa a[][3])

{ int i,j;

for(i=0; i3; i++)

{ for(j=0; j3; j++)

卖知 printf("[%d,%d]  ",a[i][j].x,a[i][j].y);

printf("\n");

}

}

int main()

{ struct aaa a[3][3]= {0,0,0,1,0,2,1,0,1,1,1,2,2,0,2,1,2,2};

prt(a);

zhuanzhi(a);

printf("after:\n");

prt(a);

return 0;

}

c语言:写一个函数,将输入的3*3的整形矩阵进行转置 用函数

#includestdio.h

int main()

{

void move(int *s);

int a[3][3];int i=0;

int *p=a[0][0];

printf("请输入一个3*3的数组:\n");

for(i=0;i3;i++)

{

scanf("%d%d%d",a[i][0],a[i][1],a[i][2]);

}

move(p);

printf("转置后的结果:\n");

for(i=0;i3;i++)

{

printf("%d %d %d\n",a[i][0],a[i][1],a[i][2]);

}

return 0;

}

void move(int *s)

{

int i,j,t;

for(i=0;i3;i++)

{

for(j=i;j3;j++)

{

t=*(s+3*i+j);

*(s+3*i+j)=*(s+3*j+i);

*(s+3*j+i)=t;

}

}

}

扩展资料:

在C语言或C++中,会把用李改氏来#include的文件的扩展名叫 .h,称其为头文件。

#include文件的目的就是把多个编译单元(也就是c或者cpp文件)公用的内容,单独放在一个文件里减少整体代码尺寸;或者提供跨工程公共代码。在现哪散行的c++版本中,应用这个头文件应是#includestdio.h

stdio 就是指 “standard input output"(标准输入输出)所以,源代码中如用到标准输入输出函数时,就要包含这个头文件!

例如c语言中的 printf("%d",i); scanf("%d",i);等函数。

引用方法

#include stdio.h

(注:在TC2.0中,允许不引用此头文件而直接调用其中的函数,但这种做法是不标准的。也不建议这样做。以避免出现在其他IDE中无法编译或执行的问题。)

标准函数

int getchar()//从标准输入设备写入一个字符

int putchar()//向标准输出设备读出一个字符

int scanf(char*format[,argument…])//从标准输入设备读入格式化后的数据

int printf(char*format[,argument…])//向标准输出设备输出格式化字符串

char* gets(char*string)//从标准输入设备读入一个字符串

int puts(char*string)//向标准输出设备输出一个字符串歼虚

int sprintf(char*string,char*format[,…])//把格式化的数据写入某个字符串缓冲区。

C语言矩阵转置

//经握销过vc6调试成功段毕游

void transferMat(int a[] , int b[], int n) //a表示待转置的矩阵,b表示输出矩阵,n表数拍示元素个数

{

int i,j;

for(i=0; in; i++)

for(j=0; jn; j++)

{

b[j,i]=a[i,j];

}

}


网页标题:c语言用函数实现矩阵转置 c语言用函数实现矩阵转置的条件
网页URL:http://kswsj.com/article/ddpegch.html

其他资讯



Copyright © 2009-2022 www.kswsj.com 成都快上网科技有限公司 版权所有 蜀ICP备19037934号