Ir ao conteúdo
  • Cadastre-se
rodrigopba

Matriz - Exercício - Ajuda"

Recommended Posts

Fala galera, espero que possam me ajudar.

 

 

A proposta é a seguinte:
 

Faça um algoritmo (em C)  que leia uma matriz de inteiros 10x10 e escreva ela da seguinte forma:
 
-------------...
|1 |123|3 |2|...
-------------...
|12|1  |57|9|...
-------------...
.
.
.
 
O usuário poderá digitar qualquer número inteiro válido, a escrita da matriz deverá se adequar aos números digitados para que a barra vertical "|" de cada coluna fique alinhada.
 
Dica: utilize o espaço " " para preencher o espaço em branco de cada coluna.
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A barra "|" deve ficar alinhada corretamente, independente do tamanho do numero.

 

EX:


|22 |554 |655 |

|22 | 56  | 25  |

 

a barra não pode mudar ( ficar desalinhada )

 

vlwss

Compartilhar este post


Link para o post
Compartilhar em outros sites

Difícil essa.

 

Ele vai preencher todas as posições da matriz 10 x 10 inteira.

 

Você terá que ler a primeira posição de cada linha e achar o maior número. Testar quantas casas ele tem. Depois tem que varrer novamente a primeira posição de cada linha adicionando os espaços que faltam até ficarem iguais, guardando em uma matriz string. Não lembro se char guarda espaço.

 

Tem que fazer isso nas outras posições também.

 

Talvez seja isso.


:D

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok,

Vamos pensar um pouco,

10 x 10 é de 10 linhas e 10 colunas.

Vamos considera um exemplo menor: 2 x 3

 

Quem determina o tamanho do campo e o numero de maior que tem mais casas decimais.

O C por exemplo se limita a um impressão por linha;

Assim eu teria de ter todos os tamanho de campos previamente determinado antes de imprimir os numero;

 

Veja esse simples exemplo, e bem literal, logo abaixo:

    /*Campos Formatados com printf*/    int iNumeros[2][3] = {        { 10, 100,  1},        {100,  10,  10}    };    int l_tmp = 0;    int colunas[3] = {0}; //Tamanho dos Campos    int div = 0;    int i;    for(i = 0; i < 3; i++)    {        int j;        for(j = 0, l_tmp = 0; j < 2; j++)        {            div = iNumeros[j][i];            while(div) { //Determinado o tamanho dos campos                div /= 10;                l_tmp++;            }            if(iNumeros[j][i] <= 0) l_tmp++; //Remove o bug dos negativos            if(l_tmp > colunas[i])                colunas[i] = l_tmp;            l_tmp = 0;        }    }   for(i = 0; i < 2; i++, putchar('\n'))        for( div = 0; div < 3; div++)        {            l_tmp = printf("%d", iNumeros[i][div]); //pode simplificar com flag da função printf                l_tmp = colunas[div] - l_tmp;            while(l_tmp)            {                 putchar(' ');                 l_tmp--;            } putchar('|');        }

 

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





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

×