数据结构 程序设计题目 求高手作答 急 答案满意你要多少分我给多少分!

2024-11-08 22:39:48
推荐回答(3个)
回答1:

这一点都不难嘛……

#include

#include

#define max 30

typedef struct {

int i,j,e;

}Triple;

typedef struct node{

Triple data[max+1];

int rpos[max+1];

int mu,nu,tu;

}RLSMatrix;

void main()

{RLSMatrix A, B,C;

int i,j,tp,t,p,brow,ccol,m,ctemp[max+1],num[max+1]={0};

do{

printf("输入矩阵A的行,列,非零元个数:");

scanf("%d%d%d",&A.mu,&A.nu,&A.tu);

printf("输入矩阵B的行,列,非零元个数:");

scanf("%d%d%d",&B.mu,&B.nu,&B.tu);

}while(A.nu!=B.mu);

printf("输入A中元素:");

for(i=1;i<=A.tu;i++)

{

scanf("%d%d%d",&A.data[i].i,&A.data[i].j,&A.data[i].e);

}

A.rpos[1]=1;

for(t=1;t<=A.tu;t++)num[A.data[t].i]++;

for(t=2;t<=A.mu;t++)A.rpos[t]=A.rpos[t-1]+num[t-1];

printf("输入B中元素:");

for(i=1;i<=B.tu;i++)

{

scanf("%d%d%d",&B.data[i].i,&B.data[i].j,&B.data[i].e);

}

B.rpos[1]=1;

for(t=1;t<=max;t++)num[t]=0;

for(t=1;t<=B.tu;t++)num[B.data[t].i]++;

for(t=2;t<=B.mu;t++)B.rpos[t]=B.rpos[t-1]+num[t-1];

C.mu=A.mu;C.nu=B.nu;C.tu=0;

if((A.tu*B.tu)==0) printf("error");

for(i=1;i<=A.mu;i++)

{

for(m=1;m<=max;m++)ctemp[m]=0;

C.rpos[i]=C.tu+1;

if(i
for(j=A.rpos[i];j
{

brow=A.data[j].j;

if(brow
else t=B.tu+1;

for(p=B.rpos[brow];p
{

ccol=B.data[p].j;

ctemp[ccol]+=A.data[j].e*B.data[p].e;

}

}

for(ccol=1;ccol<=C.nu;ccol++)

{

if(ctemp[ccol])

{

if((++C.tu)>max){printf("error");break;}

else{C.data[C.tu].i=i;C.data[C.tu].j=ccol;C.data[C.tu].e=ctemp[ccol];}

}

}

}

for(t=1;t<=C.tu;t++)

printf("%d %d %d\n",C.data[t].i,C.data[t].j,C.data[t].e);

}

回答2:

#include
using namespace std;

int i,j;

int main()
{
int a[4][4],b[4][4],sum[4][4];
for(i=0;i<4;i++)
for(j=0;j<4;j++)
cin>>a[i][j];
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
cin>>b[i][j];
sum[i][j]=a[i][j]+b[i][j];
}

cout< for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
cout< cout< }
return 0;
}

/***********************
测试结果
1 2 3 4
4 5 6 7
2 3 4 5
7 8 9 6

3 2 1 4
4 8 9 3
2 5 8 7
4 5 6 7

4 4 4 8
8 13 15 10
4 8 12 12
11 13 15 13
Press any key to continue

**********************/
这么简单的东西,哎,算是我第一次在百度回答问题,好玩儿~~~~~~

回答3:

当我没回答过,有分就了不起阿