祁映 发表于 2020-5-31 16:46:42

求助关于算法与数据结构 稀疏矩阵

#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 12500

typedef struct {
        int i, j;                //        非零元的行号,列号
        int e;
}Triple;

typedef struct {
        Triple data;
        int mu, nu, tu;                //矩阵的行数,列数,非零元个数
}TSMatrix;
//创建稀疏矩阵
void create(TSMatrix *M, int mu, int nu, int tu) {
        (*M).mu = mu;
        (*M).nu = nu;
        (*M).tu = tu;
        M = (TSMatrix *)malloc(tu * sizeof(Triple));
}

//压缩存储稀疏矩阵
void init(TSMatrix *M) {
        for (int n = 1; n <= (*M).tu; n++) {
                printf("输入第%d个非零元,格式为“行号 列号 值”(空格隔开):", n);
                int row, col, value;
                scanf_s("%d %d %d", &row, &col, &value);
                (*M).data.i = row;
                (*M).data.j = col;
                (*M).data.e = value;
        }
}
//对压缩稀疏矩阵M转置,并返回转置后的压缩稀疏矩阵
TSMatrix TransposeSMatrix(TSMatrix M) {
        TSMatrix T;
        create(&T, M.nu, M.mu, M.tu);
        if (T.tu) {
                int q = 1;
                for (int col = 1; col <= M.mu; ++col)
                        for (int p = 1; p <= M.tu; ++p)
                                if (M.data.j == col) {
                                        T.data.i = M.data.j;
                                        T.data.j = M.data.i;
                                        T.data.e = M.data.e;
                                        ++q;
                                }
        }
        return T;
}
int main() {

        TSMatrix M;
        int m_mu, m_nu, m_tu;
        printf("输入稀疏矩阵的行数、列数和非零元个数(以英文逗号隔开):");
        scanf_s("%d,%d,%d", &m_mu, &m_nu, &m_tu);
        create(&M, m_mu, m_nu, m_tu);
        init(&M);
        printf("矩阵M: \n");
        display_TSMatrix(M);          ////////////// //找不到标识符

        TSMatrix T = TransposeSMatrix(M);
        printf("M转置后的矩阵为:\n");
        display_TSMatrix(T);      //////////   //未定义标识符


        return 0;
}



错误已标出,请问该如何解决?

赚小钱 发表于 2020-5-31 23:30:06

因为,编译器找不到 display_TSMatrix 的声明。

解决办法:
在 main 函数上面定义 display_TSMatrix
或者:
include 包含 display_TSMatrix 的头文件

祁映 发表于 2020-5-31 23:33:15

赚小钱 发表于 2020-5-31 23:30
因为,编译器找不到 display_TSMatrix 的声明。

解决办法:


我找到原因了,中间有一段带代码漏掉了。现在已经解决了。实在抱歉!
页: [1]
查看完整版本: 求助关于算法与数据结构 稀疏矩阵