Ir ao conteúdo
  • Cadastre-se
nyt

ajuda com impressao da diagonal principal

Recommended Posts

ola pessoal estou com uma duvida, quero fazer com que o programa imprima a diagonal principal da matriz assim

 

1

  4

    16

       64  

 

ajudem por favor

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode criar a matriz 4x4 por exemplo, depois crie uma variável i (inicialize-a com zero)

while (i < 4){     printf("%i  ", matriz[i][i]);     i++;}

Deste modo vai imprimir os valores que estão na diagonal principal da sua matriz.  :)

Só um detalhe que esqueci de mencionar:

No método acima ela vai imprimir linearmente. Lembre-se que matriz na computação não tem o mesmo conceito de matriz na matemática. Na realidade na memória os números estão armazenados linearmente. É só dito assim para facilitar a abstração. Tanto é que em inglês tudo é o mesmo nome: array.

Compartilhar este post


Link para o post
Compartilhar em outros sites

certo obrigado pela dica n-n, bom eu fiz assim

 

for(l = 0; l < 4; l++){for(c = 0; c <4; c++){if (l == c) // aqui vou fazer o prgrama imprimir pra mim da diagonal principal com os valores ja pré determinados{}else{printf("digite os numeros: \n");scanf("%d",&a[l][c]);}}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então você quer imprimir uma matriz no qual:

matriz[0][0] = 1;matriz[1][1] = 4;matriz[2][2] = 16;matriz[3][3] = 64; 

Caso contrário, você pode inserir outros valores? 

 

Pois é isto que deu a entender no seu código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso so que como o professor é chato ele não quer que você chumbe a matriz no case mat[0][0] = 1 ai ficou difícil, mas é por esse lado o programa vai me carregar esse 4 valores sem que o usuario mecha neles, então o usuario so vai digitar 12 valores no caso 1 4 16 64 são fixos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente estes valores pré-estabelecidos tem um padrão.

Olha só:

 

4 elevado a 0 dá 1.

4 elevado a 1 dá 4

4 elevado a 2 dá 16

4 elevado a 3 dá 64.

 

Estes valores tem um padrão.

Pensa um pouco que aí você vai conseguir inserir estes valores em tempo de execução.  :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

então seria algo assim

if(l == c ){  x = pow (mat[l][c], 0);{

a duvida sré como armazenar isso pois se ue estabelecer que mat[l][c] = 1 ele vai imprimir na diagonal 1 e ai estrgou a conta do pow

Compartilhar este post


Link para o post
Compartilhar em outros sites

Errado. Seria mais ou menos isto:

if (i == c) {         matriz[i][c] = pow(4, i);}

Desse modo, caso i seja 0, vai ser armazenado o valor 1 a matriz[0][0].

Já se i for 1, vai armazenar o valor 4 em matriz[0][0] e assim sucessivamente.


Sabe porque o teu código tá errado?

Porque desta maneira que você escreveu

pow(matriz[i][j], 0)

Primeiramente você ainda não sabe o que tem na memória em matriz[j] já que você simplesmente a inicializou. Não declarou nenhum valor ainda. Logo, tem lixo na memória.

Segundo que está sempre elevando qualquer coisa a zero. E na potenciação, qualquer coisa elevado a zero dá um. 

Compartilhar este post


Link para o post
Compartilhar em outros sites

muito obrigado amigo ajudou muito o meu dia, pra você ter uma idea, prefiro ver listas, pilhas filas e arvores do que essas coisinhas ai kkkkkk, valeu mesmo n-n

Compartilhar este post


Link para o post
Compartilhar em outros sites

muito obrigado amigo ajudou muito o meu dia, pra você ter uma idea, prefiro ver listas, pilhas filas e arvores do que essas coisinhas ai kkkkkk, valeu mesmo n-n

 

Mas antes de ver listas, pilhas e filas, você precisa saber arrays muito bem. Até porque logo mais a frente você vai ser introduzido ao conceito de ponteiros e ela está ligeiramente ligada a matrizes e vetores.

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim sim eu ja vi ponteiros achei mais fácil que matriz ja passei por pilhas, filas e lsitas simplesmente encadeada gosto muito de usar typedef e malloc 

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

×