top notch的来源:会玩C++的高手近来帮下忙~~

来源:百度文库 编辑:高考问答 时间:2024/05/05 16:09:09
帮忙编个程,这个对于高手来说应该是很简单的吧~~
疏矩阵的操作
稀疏矩阵采用三元组表示,求两个具有相同行列数的稀疏矩阵A和B的相加矩阵C,并输出C。求出A的转置矩阵D,输出D

就这么个小问题了,请高手们尽快帮我解决~~~~
这个,好象这两楼的答案不是很合适吧.....
另外,有没有人能给个完整点的课程设计的格式,
也就是说,在把这个程序写出来的同时,把每句的注释也写清楚下,谢谢,时间不多,在线求

#i nclude"stdio.h"
#i nclude"stdlib.h"
typedef struct nodearray
{
int h;
int l;
int v;
struct nodearray *next;
}arr;
void main()
{
arr *head,*q;
head=(arr*)malloc(sizeof(arr));
head->next=NULL;
arr *p=head,*pt=head;
int i,j;
int k[3][3];
printf("请输入9个数据:\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&k[i][j]);
printf("稀疏距阵为:\n");
for(i=0;i<3;i++)
{
printf(" ");
for(j=0;j<3;j++)
printf("%d ",k[i][j]);
printf("\n");
}

for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(k[j][i]!=0)
{
q=(arr*)malloc(sizeof(arr));
q->next=NULL;
q->h=j;
q->l=i;
q->v=k[j][i];
p->next=q;
p=p->next;
}
printf("三元组为(按列存储):\n");
printf(" v h l \n");
while(pt->next)
{
printf(" %d %d %d",pt->next->v,pt->next->h,pt->next->l);
pt=pt->next;
printf("\n");
}
}

#i nclude"stdio.h"
#i nclude"stdlib.h"
typedef struct nodearray
{
int h;
int l;
int v;
struct nodearray *next;
}arr;
void main()
{
arr *head,*q;
head=(arr*)malloc(sizeof(arr));
head->next=NULL;
arr *p=head,*pt=head;
int i,j;
int k[3][3];
printf("请输入9个数据:\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&k[i][j]);
printf("稀疏距阵为:\n");
for(i=0;i<3;i++)
{
printf(" ");
for(j=0;j<3;j++)
printf("%d ",k[i][j]);
printf("\n");
}

for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(k[j][i]!=0)
{
q=(arr*)malloc(sizeof(arr));
q->next=NULL;
q->h=j;
q->l=i;
q->v=k[j][i];
p->next=q;
p=p->next;
}
printf("三元组为(按列存储):\n");
printf(" v h l \n");
while(pt->next)
{
printf(" %d %d %d",pt->next->v,pt->next->h,pt->next->l);
pt=pt->next;
printf("\n");
}
}

#i nclude"stdio.h"
#i nclude"stdlib.h"
typedef struct nodearray
{
int h;
int l;
int v;
struct nodearray *next;
}arr;
void main()
{
arr *head,*q;
head=(arr*)malloc(sizeof(arr));
head->next=NULL;
arr *p=head,*pt=head;
int i,j;
int k[3][3];
printf("请输入9个数据:\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&k[i][j]);
printf("稀疏距阵为:\n");
for(i=0;i<3;i++)
{
printf(" ");
for(j=0;j<3;j++)
printf("%d ",k[i][j]);
printf("\n");
}

for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(k[j][i]!=0)
{
q=(arr*)malloc(sizeof(arr));
q->next=NULL;
q->h=j;
q->l=i;
q->v=k[j][i];
p->next=q;
p=p->next;
}
printf("三元组为(按列存储):\n");
printf(" v h l \n");
while(pt->next)
{
printf(" %d %d %d",pt->next->v,pt->next->h,pt->next->l);
pt=pt->next;
printf("\n");
}
}