1668: 数组-稀疏矩阵转置
金币值:2
定数:8
时间限制:1.000 s
内存限制:128 M
正确:2
提交:4
正确率:50.00% 命题人:
题目描述
实现三元组表示的稀疏矩阵的转置操作。
#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行的三元组(行,列,值),从左往右,从上往下。
从第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);