Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  
Rodrigo de Oliveira Ramos

C Matriz esparsa para matriz condensa

Recommended Posts

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

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora
Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×