Как напечатать матричную строку между двумя индексами столбцов, если в структуре сохранены только ненулевые индексы?
Мне нужно в принципе, учитывая самый правый индекс матрицы и самый левый индекс матрицы, вывести эту строку матрицы между обоими значениями, если в этой строке есть хотя бы один индекс, который не равен нулю, и если строка Я хочу напечатать между границей строки.
У меня есть структура, в которой я храню свои строки, столбцы и значения из каждого ввода, так что мне не нужно генерировать огромную матрицу, полную «нулей», и у меня есть переменная, которая подсчитывает, сколько у меня значений сохраняется.
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