main.c

来自「实现稀疏矩阵的加法、减法、乘法、还有转置」· C语言 代码 · 共 79 行

C
79
字号
#include <stdio.h>
#include "RLSMatrix.h"

void input(RLSMatrix *pM)
{
	int ch;

	printf("选择输入形式:\n"\
		   "1.三元组形式输入\n"\
		   "2.矩阵形式输入\n");
	scanf("%d", &ch);
	switch (ch){
		case 1:
			CreateSMatrix_Triple(pM);
			break;
		case 2:
			CreateSMatrix_Matrix(pM);
			break;
	}
}

int main()
{
	RLSMatrix M, N, Q;
	int ch;

	printf("输入矩阵M\n");
	input(&M);
	printf("输入矩阵N\n");
	input(&N);
	puts("\n");

	for (;;){
		printf("选择运算:\n"\
			   "1.M+N\t4.转置M\t6.输出M\n"\
			   "2.M-N\t5.转置N\t7.输出N\n"\
			   "3.M*N\t\t0.退出\n");
		scanf("%d", &ch);
		switch (ch){
			case 1:
				if (AddSMatrix(&M, &N, &Q) == OK)
					PrintSMatrix(&Q);
				else
					printf("M与N不能相加\n");
				break;
			case 2:
				if (SubSMatrix(&M, &N, &Q) == OK)
					PrintSMatrix(&Q);
				else
					printf("M与N不能相减\n");
				break;
			case 3:
				if (MultSMatrix(&M, &N, &Q) == OK)
					PrintSMatrix(&Q);
				else
					printf("M与N不能相乘\n");
				break;
			case 4:
				FastTransposeSMatrix(&M, &Q);
				PrintSMatrix(&Q);
				break;
			case 5:
				FastTransposeSMatrix(&N, &Q);
				PrintSMatrix(&Q);
				break;
			case 6:
				PrintSMatrix(&M);
				break;
			case 7:
				PrintSMatrix(&N);
				break;
			case 0:
				return 0;
		}
	}//for

	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?