SHAOXIAOJ正在加载中...

1668: 数组-稀疏矩阵转置

金币值:2 定数:8 时间限制:1.000 s 内存限制:128 M
正确:2 提交:4 正确率:50.00% 命题人:
点赞量:0 收藏量:0 题目类型:程序 知识点: 数据结构-串与数组

题目描述

实现三元组表示的稀疏矩阵的转置操作。
#include <stdio.h>
#define MAXSIZE 100

typedef int ElemType;
typedef struct {
	int i, j;//非零元素的行、列,均以1为起点
	ElemType e;//非零元素值
} SPNode;
typedef struct {
	SPNode data[MAXSIZE+1];//data[0]未用
	int rn, cn, tn; 
} SPMatrix;
void createSMatrix(SPMatrix &M);
void transSMtrix(SPMatrix M, SPMatrix &T);
void printSMatrix(SPMatrix M);
int main(void) {
	SPMatrix M,T;
	createSMatrix(M);
	transSMtrix(M,T);
	printSMatrix(T);
	return 0;
}

void createSMatrix(SPMatrix &M) { 
	int i,m,n;
	ElemType e;
	scanf("%d%d%d",&M.rn,&M.cn,&M.tn);
	for(i=1; i<=M.tn; i++) {
		scanf("%d%d%d",&m,&n,&e);
		M.data[i].i=m;
		M.data[i].j=n;
		M.data[i].e=e;
	}
}
/*以下为你的代码*/ 

输入格式

第1行:3个数字,分别表示矩阵的行数rn、列数cn和非0元素的个数tn
从第2行开始是tn行的三元组(行,列,值),从左往右,从上往下。

输出格式

以矩阵的形式显示转置后的三元组表T。

输入样例    复制

7 8 9
1 2 12
1 3 9
3 1 -3
3 8 4
4 3 24
4 6 2
5 2 18
6 7 -7
7 4 -6

输出样例    复制

  0  0 -3  0  0  0  0
 12  0  0  0 18  0  0
  9  0  0 24  0  0  0
  0  0  0  0  0  0 -6
  0  0  0  0  0  0  0
  0  0  0  2  0  0  0
  0  0  0  0  0 -7  0
  0  0  4  0  0  0  0

提示

输出格式:printf("%3d",x);