quarta-feira, 11 de novembro de 2009

função que imprime uma matriz esparsa

void imprime(tipo_nodo **lis,int linhas , int colunas )
{
int l , c ;
tipo_nodo *aux;
aux=*lis;
printf("\n\n\n");
for (l=0;l < linhas;l++)
{
for(c=0;c < colunas;c++)
{
if(aux!=NULL)//este if teve de ser colocado porque se o aux chegar no fim e ele for nulo, ao testar o if abaixo, ele tenta acessar um registro nulo, dando erro de execução
{
if(l==aux- > lin && c==aux- > col)
{
printf("\t %d",aux- > dado);
aux=aux- > prox;
}
else
printf("\t0");//caso não tenha este else, nao aparecem alguns zeros, isso porqueo aux nao é null, entao nao entra no outro if.
}
else
printf("\t0");
}
printf("\n");
}
}

Nenhum comentário:

Postar um comentário