真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

轉(zhuǎn)置矩陣的子函數(shù)c語言 矩陣轉(zhuǎn)置算法c語言

用C語言編寫一個(gè)矩陣轉(zhuǎn)置的函數(shù),矩陣的行數(shù)和列數(shù)在程序中由用戶輸入,請(qǐng)問怎么寫,非常感謝

我的代碼邏輯是:

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡(jiǎn)單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:國(guó)際域名空間、虛擬主機(jī)、營(yíng)銷軟件、網(wǎng)站建設(shè)、徐匯網(wǎng)站維護(hù)、網(wǎng)站推廣。

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

#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個(gè)數(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語言作業(yè):寫一子函數(shù)transpose(),將一個(gè)3*3的整型矩陣轉(zhuǎn)置。

#include?stdio.h?void?change(int?a[3][3]){int?i,j,t;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?main(){int?i,j,a[3][3];for(i=0;i3;i++)for(j=0;j3;j++)scanf("%d",a[i][j]);change(a);printf("\n轉(zhuǎn)置矩陣:\n");for(i=0;i3;i++){for(j=0;j3;j++)printf("%-4d",a[i][j]);printf("\n");}}

運(yùn)行示例:

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

①目標(biāo)

將一個(gè)二維數(shù)組表示的矩陣轉(zhuǎn)置

②命令行

#includestdio.h

#include stdlib.h

~

③定義函數(shù)

void fun(int array[3][3])

{int i,j,t;

for(i=0;i<3;i++)

for(j=i+1;j<3;j++)

/*注意:只遍歷了矩陣的右上半部分。

如果for(j=0;j<3;j++,表示遍歷矩陣全部元素,右上與左下交換,左下又與右上交換,導(dǎo)致重復(fù)轉(zhuǎn)置,矩陣沒有變化。*/

{t=array[i][j];

array[i][j]=array[j][i];

array[j][i]=t;}

/*交換語句,矩陣右上半部分,與對(duì)應(yīng)左下半部分,元素交換,完成轉(zhuǎn)置*/

}

~

④主函數(shù)(調(diào)用)

void main()

{int i,j;

int array[3][3]={{1,2,3},{4,5,6},{7,8,9}};

for(i=0;i<3;i++)

{for(j=0;j<3;j++)

/*輸出原矩陣,遍歷全部*/

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

printf("\n");}

fun(array);

/*利用fun函數(shù)完成轉(zhuǎn)置*/

printf("converted array:\n");

for(i=0;i<3;i++)

{for(j=0;j<3;j++)

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

printf("\n");}

}


網(wǎng)頁標(biāo)題:轉(zhuǎn)置矩陣的子函數(shù)c語言 矩陣轉(zhuǎn)置算法c語言
鏈接分享:http://weahome.cn/article/ddesiio.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部