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

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

c語(yǔ)言編寫(xiě)矩陣輸入函數(shù) c語(yǔ)言輸入矩陣數(shù)組

c語(yǔ)言輸入矩陣

scanf("%d,%d",i,j); //你輸入時(shí)要帶","比如 5,6 ,是"%d,%d"要求的,你可以去掉這個(gè)逗號(hào)然后輸入 5 6 也行

成都創(chuàng)新互聯(lián)是專(zhuān)業(yè)的網(wǎng)站建設(shè)公司,提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)站設(shè)計(jì)等網(wǎng)站開(kāi)發(fā)一體化解決方案;包括H5開(kāi)發(fā),小程序制作,網(wǎng)站定制,企業(yè)網(wǎng)站建設(shè),商城系統(tǒng)網(wǎng)站開(kāi)發(fā),自適應(yīng)網(wǎng)站建設(shè),建網(wǎng)站,PHP網(wǎng)站建設(shè),軟件開(kāi)發(fā),軟文平臺(tái),網(wǎng)站營(yíng)銷(xiāo)。歡迎做網(wǎng)站的企業(yè)前來(lái)合作洽談,成都創(chuàng)新互聯(lián)將竭誠(chéng)為您服務(wù)!

c語(yǔ)言怎么輸入矩陣

c語(yǔ)言矩陣分為兩種:

第一種方法是動(dòng)態(tài)的申請(qǐng)矩陣存儲(chǔ)空間,該方法的好處有以下兩點(diǎn):

1.能夠動(dòng)態(tài)的申請(qǐng)和釋放存儲(chǔ)空間;

2.對(duì)于將矩陣作為函數(shù)返回值的情況,該方法具有獨(dú)特的優(yōu)勢(shì)。

第二種方法是靜態(tài)存儲(chǔ)實(shí)現(xiàn),該方法的好處是簡(jiǎn)單、易實(shí)現(xiàn),相對(duì)第一種方法缺點(diǎn):

1.靜態(tài)實(shí)現(xiàn),不能動(dòng)態(tài)的申請(qǐng)和釋放空間,對(duì)電腦的內(nèi)容要求高;

2.對(duì)于將矩陣作為函數(shù)返回值的情況,不能使用該方法。

用C語(yǔ)言編寫(xiě)一個(gè)矩陣運(yùn)算的程序,高分!

//矩陣三元組之矩陣相加 相乘

#include iostream

using namespace std;

typedef int Elemtype;

#define MAXSIZE 12500 //最大非零元素

typedef struct Triple

{

Elemtype value;

int row,col;

}Triple;

typedef struct TSMatrix

{

Triple data[MAXSIZE+1];

int mu,nu,tu;

}TSMatrix;

TSMatrix T;

void InputMatrix(TSMatrix T) //輸入t個(gè)非零元素

{

cout"請(qǐng)輸入稀疏矩陣的信息,(行,列,非零元素個(gè)數(shù))"endl;

cinT.muT.nuT.tu;

int i;

cout"請(qǐng)輸入非零元素的信息(行,列,值),提醒(下標(biāo)從1開(kāi)始)"endl;

for(i=1;i=T.tu;++i)

{

cinT.data[i].rowT.data[i].colT.data[i].value;

}

}

void Output(TSMatrix T)

{

cout"矩陣的三元組表示(ROW=)"T.mu" COL="T.nu"非零個(gè)數(shù)="T.tuendl;

int i;

for(i=1;i=T.tu;++i)

{

cout"ROW(行):"T.data[i].row" COL(列):"T.data[i].col" Value(值)"T.data[i].valueendl;

}

}

void TransposeSMatrix(TSMatrix M,TSMatrix T) //矩陣的轉(zhuǎn)置

{

T.mu=M.nu;T.nu=M.mu;T.tu=M.tu;

int i,j,k=1;

for(i=1;i=M.nu;++i)

{

for(j=1;j=M.tu;++j)

if(M.data[j].col==i)

{

T.data[k].row=i;

T.data[k].col=M.data[j].row;

T.data[k].value=M.data[j].value;

++k;

}

}

}

void AddMastrix(TSMatrix M,TSMatrix T,TSMatrix Q) //矩陣相加

{

int index_a,index_b,i=1,j=1,k=1;

Q.mu=M.mu; Q.nu=M.nu;

while (i=M.tuj=T.tu)

{

index_a=(M.data[i].row)*(M.data[i].col)+M.data[i].col;

index_b=(T.data[j].row)*(T.data[j].col)+T.data[j].col;

if(index_aindex_b)

{

Q.data[k]=M.data[i];

i++;

k++;

}

else if(index_aindex_b)

{

Q.data[k]=T.data[j];

j++;

k++;

}

else if(index_a==index_b)

{

if((M.data[i].value+T.data[j].value)!=0)

{

Q.data[k]=M.data[i];

Q.data[k].value=M.data[i].value+T.data[j].value;

k++;

}

++i;

++j;

}

}

//復(fù)制剩余元素

for(;i=M.tu;++i)

{

Q.data[k]=M.data[i];

k++;

}

for(;j=T.tu;++j)

Q.data[k++]=T.data[j];

Q.tu=k-1;

}

void Multiply(TSMatrix M,TSMatrix T,TSMatrix Q) //相乘

{

if(M.nu!=T.mu)

{

cerr"兩矩陣相乘不合法"endl;

return ;

}

int *rowSize=new int[T.mu+1]; //存放每行非零元素的個(gè)數(shù)

int *rowStart=new int[T.mu+2]; //矩陣每行在三元組開(kāi)始位置

int *temp=new int[T.nu+1]; //存放結(jié)果矩陣中每行的計(jì)算結(jié)果

int i,Current,k,ROWM,COLM,COLB;

for(i=1;i=T.mu;i++) rowSize[i]=0;

for(i=1;i=T.tu;++i) rowSize[T.data[i].row]++;

rowStart[1]=1;

for(i=2;i=T.mu+1;i++)

rowStart[i]=rowStart[i-1]+rowSize[i-1];

Current=1; k=1;

while (Current=M.tu)

{

ROWM=M.data[Current].row; //當(dāng)前三元組數(shù)據(jù)中元素的行號(hào)

for(i=1;i=T.nu;++i) temp[i]=0;

while (Current=M.tuROWM==M.data[Current].row)

{

COLM=M.data[Current].col; //當(dāng)前元素的列號(hào),方便與T矩陣的行號(hào)相乘

for(i=rowStart[COLM];irowStart[COLM+1];i++) //對(duì)應(yīng)T矩陣中每行的個(gè)數(shù)

{

COLB=T.data[i].col;

temp[COLB]+=(M.data[Current].value)*(T.data[i].value);

}

Current++;

}

for(i=1;i=T.nu;i++)

{

if(temp[i]!=0)

{

Q.data[k].row=ROWM;

Q.data[k].col=i;

Q.data[k].value=temp[i];

}

k++;

}

}

Q.mu=M.mu;Q.nu=T.nu;

Q.tu=k-1;

}

int main()

{

TSMatrix T,M,Q,S;

InputMatrix(M);

InputMatrix(T);

cout"兩矩陣相乘"endl;

Multiply(M,T,Q);

Output(Q);

cout"兩矩陣相加"endl;

AddMastrix(M,M,S);

Output(S);

system("pause");

return 0;

}


網(wǎng)站欄目:c語(yǔ)言編寫(xiě)矩陣輸入函數(shù) c語(yǔ)言輸入矩陣數(shù)組
鏈接分享:http://weahome.cn/article/ddjijos.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部