📄 tsmatrix.cpp
字号:
// 这是使用应用程序向导生成的 VC++
// 应用程序项目的主项目文件。
#include "stdafx.h"
#using <mscorlib.dll>
using namespace System;
#define MAXSIZE 30
#define OK 1
#define FALSE 0
#define ERROR 0
#define TRUE 1
typedef int ElemType;
typedef ElemType Status;
typedef struct
{
int i,j;
ElemType e;
}Triple;
typedef struct
{
Triple data[MAXSIZE+1];
int mu,nu,tu;
}TSMatrix;
Status Input(TSMatrix &a) //输入
{
int i;
printf("输入稀疏矩阵行值,列值,最大非零元个数:");
scanf("%d%d%d",&a.mu,&a.nu,&a.tu);
for(i=1;i<=a.tu;i++)
{
printf("输入行坐标,列坐标,非零元");
scanf("%d%d%d",&a.data[i].i,&a.data[i].j,&a.data[i].e);
}
return OK;
}
Status trans(TSMatrix a,TSMatrix &b) //转置
{
b.mu = a.nu;
b.nu = a.mu;
b.tu = a.tu;
if(b.tu)
{
int q =1;
for(int col =1 ;col<=a.nu;++col)
for(int p=1;p<=a.tu;++p)
if(a.data[p].j == col)
{
b.data[q].i = a.data[p].j;
b.data[q].j = a.data[p].i;
b.data[q].e = a.data[p].e;
++q;
}
}
return OK;
}
void Print(TSMatrix x)
{
int i,j,k,flag;
for(i=1;i<=x.mu;i++)
{
for(j=1;j<=x.nu;j++)
{
flag=0;
for(k=1;k<=x.tu;k++)
{
if(((x.data[k].i)==i)&&((x.data[k].j)==j))
{
flag=1;
printf("%d",x.data[k].e);
}
}
if(flag==0)printf("0");
}
printf("\n");
}
}
int _tmain()
{
TSMatrix a,b;
Input(a);
trans(a,b);
printf("原矩阵为:\n");
Print(a);
printf("转置矩阵为:\n");
Print(b);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -