新聞中心
矩陣對角線上元素求和 C語言
#includestdio.h
成都創(chuàng)新互聯(lián)長期為近1000家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為綏德企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè),綏德網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
void main()
{
int i,j;
int temp,res1=0,res2=0;
for(i=0;i5;i++){
for(j=0;j5;j++){
scanf("%d",temp);
if(i == j){
res1 += temp;
}
if((i + j) ==4){
res2 += temp;
}
}
}
printf("%d %d\n",res1,res2);
}
C語言中怎么用指針實現(xiàn)兩矩陣的相加
void MatrixAdd(int *a,int *b,int *result,int n)//a,b兩個n階矩陣相加,結(jié)果保存在矩陣result中(指針a,b,result分別用來接收三個二維數(shù)組的首地址)
{
int i;
for(i=0;in*n;i++)*(reslut+i)=*(a+i)+*(b+i);
}
C語言 矩陣相加C=A+B
#include stdio.h
main()
{
int a[3][4],b[3][4],c[3][4];
for(int i = 0;i 3;i++) //輸入數(shù)組a
for(int j = 0;j 4;j++)
scanf("%d",a[i][j]);
for(int i = 0;i 3;i++) //輸入數(shù)組b
for(int j = 0;j 4;j++)
scanf("%d",b[i][j]);
for(int i = 0;i 3;i++) //計算c
{
for(int j = 0;j 4;j++)
{
c[i][j] = a[i][j] + b[i][j];
printf("%d ",c[i][j]);
}
pringf("\n");
}
}
試試吧....
如何用C語言編程實現(xiàn)矩陣相加、相乘
矩陣相加會簡單點,設(shè)a[2][3]和b[2][3],只要在相應(yīng)的地方相加就行了,
for(i=0;i2;i++)
for(j=0;j3;j++)
c[i][j]=a[i][j]+b[i][j];
兩矩陣相乘,
int a[][3]={1,2,3,4,5,6,7,8,9};//A為N×P矩陣,
//假設(shè)是3*3的矩陣
int b[][5]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
//B為P×M矩陣,假設(shè)是3*5的矩陣
int c[3][5]={0};//結(jié)果矩陣3*5
for(int i=0;i3;i++)
for(int j=0;j5;j++)
for(int k=0;k3;k++)
c[i][j]+=a[i][k]*b[k][j];
數(shù)據(jù)結(jié)構(gòu)c語言矩陣相加,用三元組做,高手幫忙改一下
錯誤比較多把~
for語句里面是分號
scanf("%..",..);
switch語句后面要接表達式,case后面是常量表達式,后面要接default
函數(shù)的定義后面不加分號 status createsmatrix(tsmatrix M); { int i;
剩下的自己找下吧
用C語言編寫一個矩陣運算的程序,高分!
//矩陣三元組之矩陣相加 相乘
#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個非零元素
{
cout"請輸入稀疏矩陣的信息,(行,列,非零元素個數(shù))"endl;
cinT.muT.nuT.tu;
int i;
cout"請輸入非零元素的信息(行,列,值),提醒(下標(biāo)從1開始)"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"非零個數(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]; //存放每行非零元素的個數(shù)
int *rowStart=new int[T.mu+2]; //矩陣每行在三元組開始位置
int *temp=new int[T.nu+1]; //存放結(jié)果矩陣中每行的計算結(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ù)中元素的行號
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)前元素的列號,方便與T矩陣的行號相乘
for(i=rowStart[COLM];irowStart[COLM+1];i++) //對應(yīng)T矩陣中每行的個數(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;
}
本文標(biāo)題:矩陣求和c語言函數(shù) c語言矩陣相乘函數(shù)
當(dāng)前路徑:http://www.dlmjj.cn/article/hpsjhp.html