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

两个4乘以4二维数组求和任务:要求数组初始化由键盘输入,并保证正确的输出要求附带程序说明,能看懂就行~~楼下的你的程序不符合要求啊最重要的是。。。你的程序输入会出现死循环... 两个4乘以4二维数组求和
任务:要求数组初始化由键盘输入,并保证正确的输出
要求附带程序说明,能看懂就行~~
楼下的 你的程序不符合要求啊 最重要的是 。。。你的程序输入会出现死循环。。。
二楼的~~ 你的程序没有直接定义4*4的数组 而且程序执行后,没有B数组的元素输入!! 我晕了
不过还是谢谢你们的回答~~
希望有高手能原创个~~~
展开
 我来答
AkibaSama
2008-12-28 · TA获得超过416个赞
知道小有建树答主
回答量:186
采纳率:0%
帮助的人:156万
展开全部
这一点都不难嘛……

#include<stdio.h>

#include<malloc.h>

#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<A.mu) tp=A.rpos[i+1];else tp=A.tu+1;

for(j=A.rpos[i];j<tp;j++)

{

brow=A.data[j].j;

if(brow<B.mu) t=B.rpos[brow+1];

else t=B.tu+1;

for(p=B.rpos[brow];p<t;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);

}
shuoxie
2008-12-29
知道答主
回答量:7
采纳率:0%
帮助的人:0
展开全部
#include<iostream>
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<<endl;
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
cout<<sum[i][j]<<"\t";
cout<<endl;
}
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

**********************/
这么简单的东西,哎,算是我第一次在百度回答问题,好玩儿~~~~~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我是小超子
2008-12-29 · TA获得超过380个赞
知道答主
回答量:102
采纳率:0%
帮助的人:0
展开全部
当我没回答过,有分就了不起阿
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式