用C语言输入20*10的稀疏矩阵

2025-04-13 11:56:07
推荐回答(1个)
回答1:

#include
#include

struct Trinode{
int row,col;
int val;
Trinode * next;
};
struct Triple{
int trow,tcol,numb;
Trinode * now;
};
Triple * inital(){
Triple * p=(Triple *)malloc(sizeof(struct Triple));
p->now=NULL;
return p;
}
void add(Triple * p,int r,int c,int v){
Trinode * q=(Trinode *)malloc(sizeof(struct Trinode));
q->col=c;
q->row=r;
q->val=v;
q->next=NULL;
if(!(p->now)){p->now=q;}
else{
p->now->next=q;
p->now=q;
}
p->numb++;
}
void main()
{
int r=1,c=1,v=1;
Triple * p=inital();
p->tcol=20;p->trow=10;
p->numb=0;
char flag='y';
while(flag=='y'){
printf("请输入行:\n");
scanf("%d",&r);
printf("请输入列:\n");
scanf("%d",&c);
printf("请输入数值:\n");
scanf("%d",&v);
if(r>20||c>10) {printf("错误,重新输入!/n"); continue;}
add(p,r,c,v);
getchar();
printf("是否重新输入?(y/n)\n");
scanf("%c",&flag);
}
}
匆忙而写,以前还没写过稀疏矩阵了.书上只有数组形式的.比想象的要难写些...
错了管换