Olá, estou com dúvida em saber como eu defino um valor em uma matriz menor e esta matriz e definina o valor dela 3x3 e depois inseir os valores na sua primeira coluna ate a linha final , na 2 e 3 coluna colocar o valor da linha e coluna que se encontrava na matriz esparsa.
Segue abaixo o que eu conseguir definir, o que esta errado?
/*
Aluno: Rodrigo de Oliveira Ramos
Uma matriz esparsa ´e uma matriz que tem diversos elementos iguais a zero, tal qual
mostrado abaixo. Escreva um programa que leia uma matriz M de 5×5, supostamente
esparsa e a partir dela, forme uma matriz condensada, de apenas 3 colunas, com apenas
os elementos n˜ao nulos da matriz original. A matriz condensada (mostrada abaixo a
direita) ´e organizada de forma que em cada linha dela se tenha:
• na primeira coluna, o valor n˜ao nulo de M, na segunda e terceira coluna, o ´ındice da
linha e da coluna de M, onde foi encontrado esse valor.
*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
int matriz[5][5];
int i=0,j=0;
int cont=0;
int contador=0;
int condesada[3][3];
int auxiliar;
int tam;
for(i=0; i<5; i++)
for(j=0; j<5; j++)
{
printf("O valor na posicao %d: ",contador);
contador++;
scanf("%d",&matriz[j]);
}
if(cont>= 1){
for(i=0; i<5; i++)
for(j=0; j<5; j++)
printf("Coluna %d\t Linha %d\t :%d\t\n",i+1,j+1,matriz[j]);
}
cont =0;
for(i=0; i<5; i++)
for(j=0; j<5; j++)
if(matriz[j]!= 0)
{
cont = cont + 1;
tam = cont %2;
auxiliar=condesada[j];
condesada[j]= matriz[j];
condesada[cont][1]= i;
condesada[cont][2]= j;
}
printf(" o valor de cont: %d\n", cont);
if (cont < 1)
printf("Matriz nao possui elemento nao nulo");
else
{
printf("M\tLinha\tColuna\t\n");
for(i=0; i<tam; i++)
for(j=0; j<tam; j++)
{
printf("%d\t%d\t%d\t\n",condesada[j],condesada[cont][1],condesada[cont][2]);
}
}
system("pause");
return 0;
}