稀疏矩阵三元组存储,转置矩阵输出的最后一组原生不对,求各位帮帮忙。
#include <stdio.h>#define max 3
typedef struct Triple
{
int row, col, e;
}Triple;
typedef struct TSMarix
{
Triple data[max + 1];
int m, n, len;
}TSMarix;
void CreateTSMarix(TSMarix *T)
{
int i;
printf("请输入行数列数,非零元素个数:\n");
scanf_s("%d%d%d", T->m, T->n, T->len);
printf("请输入非零元素的行下标,列下标,值(空格分开输入):\n");
for (i = 1; i< T->len; i++)
{
scanf_s("%d%d%d", T->data[i].row, T->data[i].col, T->data[i].e);
}
}
void Print(TSMarix T)
{
int i;
printf("元素的行下标,列下标,值为:\n");
for (i = 1; i<max + 1; i++)
{
printf("\t%d\t%d\t%d", T.data[i].row, T.data[i].col, T.data[i].e);
}
}
int main()
{
TSMarix T;
printf("创建三元组表:\n");
CreateTSMarix(&T);
printf("输出三元组表:\n");
Print(T);
return 0;
}
[此贴子已经被作者于2017-11-2 22:33编辑过]