从没有'零保存的稀疏矩阵中打印矩阵线。

时间:2018-04-25 19:19:17

标签: c matrix sparse-matrix

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

基本上,我需要基于矩阵的最右索引和矩阵的最左索引,如果该行中的至少一个索引不是那么,则在两个值之间打印该矩阵线。 t为零,如果我要打印的行在行的绑定之间。

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

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");
                    }

如果输入是,请说

3 3 3.0
3 0 4.0
print_line(3)->
4.0 0.0 0.0 3.0

我当前的代码仅打印0.0&#39>

0 个答案:

没有答案