c語言用函數(shù)將矩陣轉(zhuǎn)置 C語言轉(zhuǎn)置矩陣

C語言轉(zhuǎn)置矩陣

測試通過!

鹿泉網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、APP開發(fā)、自適應網(wǎng)站建設等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)公司自2013年創(chuàng)立以來到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設就選創(chuàng)新互聯(lián)公司

#includestdio.h

#define m 2

#define n 3

void main()

{

int i,j,a[m][n],b[n][m];

printf("請輸入數(shù)組數(shù)據(jù)\n");

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

{

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

{

scanf("%d",a[i][j]);

}

}

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

{

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

{

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

}

}

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

{

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

{

printf("%d\t",b[j][i]);//加上\t使結(jié)果更美觀

}

printf("\n");

}

//去掉return 0;void型函數(shù)不需要返回值

}

c語言如何通過定義函數(shù)來轉(zhuǎn)置矩陣?

#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語言編寫一個矩陣轉(zhuǎn)置的函數(shù),矩陣的行數(shù)和列數(shù)在程序中由用戶輸入,請問怎么寫,非常感謝

我的代碼邏輯是:

矩陣行指針初值指向每行首地址,迭代依次取所有行指針指向值組成新行,所有行指針自增。最終組合新的矩陣。

#include?stdio.h

#include?malloc.h

int?**getList(int?row,int?clo);//獲取矩陣地址空間

void?setNum(int?**nList,int?n);//填寫數(shù)值

void?prtList(int?**nList,int?row,int?clo);//打印矩陣

int?**zz(int?**nList,int?row,int?clo);//轉(zhuǎn)置函數(shù)

int?main()

{

int?row,clo,**nList=NULL,**nListSave=NULL;

printf("輸入矩陣行列數(shù):");

scanf("%d%d",row,clo);

nList=getList(row,clo);

setNum(nList,row*clo);

printf("輸入的矩陣為:\n");

prtList(nList,row,clo);

printf("轉(zhuǎn)置后的矩陣為:\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個數(shù)值:\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語言用函數(shù)將矩陣轉(zhuǎn)置 C語言轉(zhuǎn)置矩陣
轉(zhuǎn)載注明:http://muchs.cn/article22/docoijc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設計公司品牌網(wǎng)站設計、品牌網(wǎng)站建設、定制開發(fā)、服務器托管、搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名