C 语言实现稀疏矩阵转置:附完整代码与详细解析
以下是一个用 C 语言实现稀疏矩阵转置的示例代码: ```c #include <stdio.h> #include <stdlib.h> // 定义稀疏矩阵的三元组结构 typedef struct { int row; int col; int value; } Element; // 转置函数 void transposeSparseMatrix(Element *input, Element *output, int numElements) { int i, j, k = 0; for (j = 0; j < numElements; j++) { for (i = 0; i < numElements; i++) { if (input[i].col == j) { output[k].row = input[i].col; output[k].col = input[i].row; output[k].value = input[i].value; k++; } } } } // 打印稀疏矩阵 void printSparseMatrix(Element *matrix, int numElements) { int i; for (i = 0; i < numElements; i++) { printf("(%d, %d, %d)\n", matrix[i].row, matrix[i].col, matrix[i].value); } } int main() { Element input[] = { {0, 0, 1}, {1, 1, 2}, {2, 2, 3} }; int numElements = sizeof(input) / sizeof(Element); Element *output = (Element *)malloc(numElements * sizeof(Element)); transposeSparseMatrix(input, output, numElements); printf("原始矩阵:\n"); printSparseMatrix(input, numElements); printf("转置矩阵:\n"); printSparseMatrix(output, numElements); free(output); return 0; } ``` 在上述代码中,我们首先定义了一个表示稀疏矩阵三元组的结构体 `Element`。然后,`transposeSparseMatrix` 函数用于实现转置操作,通过遍历输入矩阵的元素,将列和行交换后存储到输出矩阵中。`printSparseMatrix` 函数用于打印稀疏矩阵。在 `main` 函数中,我们创建了一个示例的稀疏矩阵,进行转置操作,并打印原始矩阵和转置后的矩阵。 ######[AI写代码神器 | 531点数解答 | 2024-10-29 19:34:16]
- C++ 实现:轻松计算两个矩阵的乘法并输出结果(字节豆包 | 381点数解答 | 2025-12-03 19:20:23)142
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)380
- 缜密逻辑,全新无名杀“风餐”技能代码精心打造与深度解析 (字节豆包 | 469点数解答 | 2025-04-05 11:37:06)271
- Golang开发:解析JSON数据时数值默认类型及示例解析(百度文心 | 393点数解答 | 2023-11-09 18:13:06)309
- SQL Working Areas Sizing: Manual vs. Automatic Policy - A Comprehensive Analysis(阿里通义 | 530点数解答 | 2024-05-13 10:55:58)329
- C++ 实现我的世界基岩版:从简单框架到开发要点揭秘(字节豆包 | 182点数解答 | 2025-02-22 15:53:11)214
- C++ 实现完整斗地主:含洗牌、发牌与手牌展示,可按需扩展!(字节豆包 | 1028点数解答 | 2026-01-10 08:02:37)56
- C++实现自动化药房配药检查功能(字节豆包 | 701点数解答 | 2026-03-08 10:23:41)32
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)350
- 用 JS 中 for 循环实现 1 到 100 相加并输出结果到页面的完整代码 ( | 240点数解答 | 2024-05-20 22:11:29)497
- 用 JS 的 while 循环实现 1 到 100 相加并输出到页面的代码揭秘( | 47点数解答 | 2024-05-20 22:16:48)386
- Python 实现:根据规则判定 2^n×2^n 方阵中作弊者的赦免命运(字节豆包 | 247点数解答 | 2024-11-03 10:30:46)211