Ir para conteúdo
Fórum Script Brasil
  • 0

Matrizes em C


Guest --Luciano --

Pergunta

Guest --Luciano --

Fala aew galera..

To com um probleminha aqui, to tentando aprender C, to seguindo um livro aqui, e tive um problema num exercicio. Ele fala que uma pessoa vai entrar com os valores de um matriz bidimensional (5x5), e eu tenho que calcular a diagonal principal. Só que o código que eu fiz ( abaixo ), só me pede 5 valores (deveriam ser 25 já que é uma matriz 5x5), e o resultado é um número muito esquisito, se alguém puder me ajudar eu agradeço.

Abaixo o código e o que aparece no terminal : (uso gcc num slackware 12)

# include <stdio.h>

main() {
  int mat[5][5],i,j,r=0;
  for (i=0;i<5;i++)
    for (j=0;j<5;j++) {
      printf("Entre com o valor: ");
      scanf("%d",&mat[i][j]);
      if (i=j)
        r=r+mat[i][j];
    }
  printf("O somatório dos elementos da diagonal principal é: %d \n",r);
}

Comando:

dominos@dominos:~/Projetos/C$ gcc teste.c -o prog.o

dominos@dominos:~/Projetos/C$ ./prog.o

Entre com o valor: 1

Entre com o valor: 2

Entre com o valor: 3

Entre com o valor: 4

Entre com o valor: 5

O somatório dos elementos da diagonal principal é: -939936291

dominos@dominos:~/Projetos/C$

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
Guest Visitante

Oi luciano segue abaixo o trecho para você preencher sua matriz e ao mesmo tempo realizar a soma dos elementos da diagonal principal.

#include<stidio>
#define TAM 5

main(){

int M[TAM][TAM];
int i, j;
int soma = 0;

for(i=0; i<TAM; i++)
{
   for(j=0; j<TAM; j++)
   { 
       printf("M[%d][%d]:  ", i, j);
       scanf(" %d", M[i][j]);
       
       if(i == j) {soma += M[i][j]; }
    }
}

printf("Resultado da soma dos elementos da diagonal principal: %d\n", soma);

system("pause");
}

Espero ter ajudado, mas qual é o livro que você está utilizando?

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Luciano --

Falo cara, descobri o meu problema, era no "if" , eu tava colocando o "if (i=j)" e é "if (i==j)". To confundindo um pouco com o pascal (mechi com pascal durante 2 anos). E no seu programa tem um errinho, ta faltando um "&" antes do M[j] no scanf. E só por curiosidade: pra que que serve a função system ?

O parametro do system deve ser passado com aspas simples ou druplas ? No seu está aspas duplas, mas aqui da um erro , só com aspas simples que funciona.

Vlw cara.

Já ia me esquecendo, os livros que estou usando são:

C - Guia de Referencia Básica (McGraw Hill - Autor: Hebert Schildt) e

Estrutura de Dados e Algoritmos Usando C . Fundamentos e Aplicações ( Editora Ciencia Moderna - Autor: Osmar Quirino da Silva ) // Tirei o exercicio daqui //

Link para o comentário
Compartilhar em outros sites

  • 0

No devC++ usado no Windows você usa o system com aspas duplas.

O system serve para você acessar comandos do sistema. Por exemplo, eu estou usando windows, se eu quisesse copiar todos os arquivos do diretório raíz para uma pasta eu poderia fazer isso:

system("md c:\\Edu");
 system("copy c:\\*.* c:\\Edu");
 system("pause");

Akelabrassssss

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...