C 从不使用';保存的稀疏矩阵打印矩阵行;零';

C 从不使用';保存的稀疏矩阵打印矩阵行;零';,c,matrix,sparse-matrix,C,Matrix,Sparse Matrix,当我只在结构中保存非零索引时,如何在两个列索引之间打印矩阵行 我需要基本上,给定矩阵的最右边的索引和最左边的索引,在两个值之间打印该矩阵行,如果该行中至少有一个索引不是零,并且我要打印的行位于行的边界之间 我有一个存储每个输入的行、列和值的结构,这样我就不必生成一个充满“零”的巨大矩阵,我有一个变量来计算我存储了多少值 int searchForLine(unsigned int l){ int i; for(i=0;i<matrixcount;i++){

当我只在结构中保存非零索引时,如何在两个列索引之间打印矩阵行

我需要基本上,给定矩阵的最右边的索引和最左边的索引,在两个值之间打印该矩阵行,如果该行中至少有一个索引不是零,并且我要打印的行位于行的边界之间

我有一个存储每个输入的行、列和值的结构,这样我就不必生成一个充满“零”的巨大矩阵,我有一个变量来计算我存储了多少值

int searchForLine(unsigned int l){
    int i;
    for(i=0;i<matrixcount;i++){
        if((auxMatrix[i].line == l)&&(auxMatrix[i].column<=workingMatrix.maxCol)&&(auxMatrix[i].column>= workingMatrix.minCol))
            return (int)auxMatrix[i].value;
    }
    return (int)workingMatrix.zero;
}

void print_line(){
    unsigned int ii,i,userLine;
    scanf("%u", &userLine);
    if((userLine<workingMatrix.minLine) || (userLine>workingMatrix.maxLine)){
        printf("empty line\n");
    }
    else{
        for(ii=0;ii<matrixcount;ii++){
                if(auxMatrix[ii].line!=userLine){
                    printf("empty line\n");break;
                }else{;}
        }

        for(i=workingMatrix.minCol;i<workingMatrix.maxCol;i++){
            printf("%u ",searchForLine(userLine));
        }
                    }
                    printf("\n");
                    }

我当前的代码只打印0.0

代码中没有任何地方是浮点值的打印。输出
4.0 0.0 0.0 3.0
可疑。发布我的结构auxMatrix具有
无符号整数行、列;浮动值
bigbear,而不是在注释中编译所需的post代码,修改您的post以包含
structauxmatrix
definition。此外,了解``struct auxMatrix`细节只是一步。Post仍然缺少
4.0 0.0 0.0 3.0
的打印方式。发布一篇文章以改进文章并获得良好的反馈。
3 3 3.0
3 0 4.0
print_line(3)->
4.0 0.0 0.0 3.0