Ir ao conteúdo
  • Cadastre-se

C Imprimir matriz no formato original


Liara K

Posts recomendados

Estou fazendo esse exercício: 

Leia uma matriz A de tamanho (5,5) e calcule a soma dos elementos da diagonal principal. O algoritmo deve escrever A na forma de matriz (linhas e colunas) e o resultado da soma.

 

Deve ter outra forma de imprimir a matriz no formato original, eu pesquisei mas não achei, se vocês souberem agradeço muito porque pode acontecer de ser uma matriz maior, enfim.

 

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <time.h>
#include <math.h>

#define SIZE 5

int main()
{
    setlocale(LC_ALL,"Portuguese");
    
    int i = 0, j = 0;
    float matriz[SIZE][SIZE], soma = 0;
    
    for (i = 0; i < SIZE; i++)
    {
        for (j = 0; j < SIZE; j++)
        {
        printf("Digite o valor para a linha %i coluna %i da Matriz:", i, j);
        scanf("%f", &matriz[i][j]);
        }
    }    

    printf("\n Matriz A = \n");
    printf("\n  %0.2f  %0.2f  %0.2f  %0.2f  %0.2f  \n", matriz[0][0], matriz [0][1], matriz[0][2], matriz [0][3], matriz[0][4]);
    printf("\n  %0.2f  %0.2f  %0.2f  %0.2f  %0.2f  \n", matriz[1][0], matriz [1][1], matriz[1][2], matriz [1][3], matriz[1][4]);
    printf("\n  %0.2f  %0.2f  %0.2f  %0.2f  %0.2f  \n", matriz[2][0], matriz [2][1], matriz[2][2], matriz [2][3], matriz[2][4]);
    printf("\n  %0.2f  %0.2f  %0.2f  %0.2f  %0.2f  \n", matriz[3][0], matriz [3][1], matriz[3][2], matriz [3][3], matriz[3][4]);
    printf("\n  %0.2f  %0.2f  %0.2f  %0.2f  %0.2f  \n", matriz[4][0], matriz [4][1], matriz[4][2], matriz [4][3], matriz[4][4]);
    
    for (i = 0; i < SIZE; i++)
    {
        
        soma = soma + matriz[i][i];
    }
    
    printf(" \n A soma de todos os elementos da Diagonal Principal é igual a: %0.2f", soma);
        
printf("\n");
system("pause");
return 0;
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

56 minutos atrás, Liara K disse:

printf("\n  %0.2f  %0.2f  %0.2f  %0.2f  %0.2f  \n", matriz[0][0], matriz [0][1],

 

Pois é: acho que você achou pouco genérico...

 

E é.

 

57 minutos atrás, Liara K disse:

outra forma de imprimir a matriz no formato original, eu pesquisei mas não achei, se vocês souberem agradeço muito porque pode acontecer de ser uma matriz maior, enfim

 

Não há assim uma forma mágica de fazer isso. Conforme a matriz cresce pode ficar difícil de ler, como fica aqui na tela do forum ou no papel, mas assim é com a matriz de todo modo...

 

Em relação ao programam faça o simples: imprima linha a linha, com uma chamada a printf() por vez sem pular linhas até o fim de cada uma. Ao final de cada linha apenas imprima um '\n'. Só isso.

 

Entenda que você pode escrever assim, pelo mesmo "preço":

 

printf("\n  %0.2f  %0.2f  %0.2f  %0.2f  %0.2f  \n",
	matriz[0][0],
	matriz [0][1],
	matriz[0][2], 
	matriz [0][3], 
	matriz[0][4]
);
    

 

É mais fácil de ler e em especial aqui no forum porque as linhas não podem ter muitas colunas ou aparece a barra de scroll e trunca, como deve ter visto...

 

Isso é o simples:

 

// loop externo imprime cada linha
for()
{
    // loop interno imprime cada coluna
    for()
    {
      // imprime matriz(i,j)
    } 
    printf("\n");
}

 

C não tem matrizes, como outras linguagens. Apenas vetores. E vetores de vetores e assim por diante.

 

Rode esse programa e entenda como é organizado:
 

#define LINHAS 5
#include <stdio.h>
int main(void)
{
    double matriz[LINHAS][8];
    printf("\
A matriz tem %lu elementos \
em %d linhas de %lu colunas\n\
cada elemento usa %lu bytes\n\
a matriz toda ocupa %lu bytes\n",
    sizeof(matriz)/sizeof(matriz[0][0]),
    LINHAS,
    sizeof(matriz[0])/sizeof(matriz[0][0]),
    sizeof(double),
    sizeof(matriz)
    );
    return 0;
};

 

Deve ver algo assim
 

A matriz tem 40 elementos em 5 linhas de 8 colunas
cada elemento usa 8 bytes
a matriz toda ocupa 320 bytes

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 comunidades 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

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!