📄 xlp2.c
字号:
#include <stdio.h>
#define MAXSIZE 1000
#define ElemType int
typedef struct
{
int x,y;
ElemType v;
}Mat;
typedef struct
{
Mat data[MAXSIZE+1];
int m,n,t;
}Spmatrix;
Spmatrix a,b;
int i,j;
void input()
{
i=0;
a.data[0].x=1;
printf("请输入矩阵的行,列和非零元素个数:\n");
scanf("%d,%d,%d",&a.m,&a.n,&a.t);
printf("请输入矩阵元素,以 0,0,0 结束\n");
for(j=1;j<=a.t;j++)
{
i++;
printf("请输入第%d个非零元素的坐标及值\t",i);
scanf("%d,%d,%d",&a.data[i].x,&a.data[i].y,&a.data[i].v);
if(a.data[i].x>a.m||a.data[i].x<1||a.data[i].y>a.n||a.data[i].y<1)
{printf("输入的下标越界,请重新输入\n");
i--;
j--;
continue;
}
b.data[(a.data[i].x-1)*a.n+a.data[i].y].v=a.data[i].v;
}
}
void output()
{ int m;
m=0;
for(i=1;i<=a.m;i++)
for(j=1;j<=a.n;j++)
{if (b.data[(i-1)*a.n+j].v!=m)
printf("%2d",b.data[(i-1)*a.n+j].v);
else
printf("%2d",m);
if(((i-1)*a.n+j)%a.n==0)
printf("\n");
}
}
void sanyuan()
{
for(i=1;i<=a.t;i++)
printf("%2d%2d%2d\n",a.data[i].x,a.data[i].y,a.data[i].v);
printf("%2d%2d%2d",a.m,a.n,a.t);
}
void main()
{
input();
printf("稀疏矩阵为:\n");
output();
printf("三元组表为:\n");
sanyuan();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -