酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

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` 函数中,我们创建了一个示例的稀疏矩阵,进行转置操作,并打印原始矩阵和转置后的矩阵。 [2024-10-29 19:34:16 | AI写代码神器 | 531点数解答]

相关提问