Ir ao conteúdo
  • Cadastre-se
jpaulexo

Problema ao compilar (matrizes)

Recommended Posts

 1) Leia duas matrizes 2x3 de números double. Imprima a soma destas duas matrizes. 

 

CÓDIGO: Exercicio Matriz.txt

 

OBS: Por algum motivo o codigo postado aqui tirou alguns i por achar que é itálico, mas está completo no arquivo acima.

 

 

#include <stdio.h>
void imprimir()
{
    double Matriz[2][3]
    for (int t=0; t < 3; t++0){
        printf("\n");
        for(int i=0; i < 3; i++)
            printf( "%lf", Matriz[t]);
    }
}
void carregar_matriz()
{
    double Matriz[2][3]
    printf("\n\n\n");
    for (int t=0; t < 3; t++)
        for(int i=0; i < 3; i++){
            printf("Digite o numero que sera guardado na posicao [%d][%d]", t+1, i+1);
            scanf("%lf", &Matriz[t]);
        }
        
}

int main (void)
{
    double Matriz_1[2][3];
    double Matriz_2[2][3];
    double Matriz_3[2][3];
    
    carregar_matriz(Matriz_1);
    carregar_matriz(Matriz_2);
    for (int t=0; t < 3; t++)
        for(int i=0; i < 3; i++)
            Matriz_3[t] = Matriz_1[t] + Matriz_2[t];
    printf("O resultado da Soma das duas matrizes 2x3: \n")
    imprimir(Matriz_3);
    printf("\n\n")
    return 0;
}

 

Não estou entendendo porque ao compilar aparecem erros, como: 

 In function 'void imprimir()':

 [Error] expected initializer before 'for'

 [Error] 't' was not declared in this scope (está declarado no int)

 

 In function 'void carregar_matriz()':

[Error] expected initializer before 'printf'

[Error] 'Matriz' was not declared in this scope 

..... e por ai vai

Compartilhar este post


Link para o post
Compartilhar em outros sites

Minhas sugestões são:

 

0 - Você não colocou ponto e vírgula depois da declaração das matrizes dentro das funções (não se preocupe pois as declarações estão erradas e você deve tirar elas de dentro das funções, explico logo abaixo)

1 - Você não está retornando nenhum valor com a suas funções e também não está passando as variáveis por referência, então no final da função tudo que foi feito dentro dela é destruído e não adiantou nada.


Sua função de imprimir e carregar matriz deveriam receber uma matriz de alguém, se for por referência deveria ser algo tipo:
void carregar_matriz (double matriz[2][3]

Dessa forma a matriz do main será passada por referência, será preenchida na função e continuará com seus valores no main.

2 - A matriz é de 2x3 certo? Nas suas funções de carregar e imprimir o seu primeiro for está correndo 3x, sendo que era pra correr 2x apenas, mude o t < 3 para t < 2 

3 - Sua soma não me parece correta também, você está somando só as colunas e deixando as linhas de fora. Você comete o mesmo erro na hora de imprimir e carregar as matrizes.

 

4 - Na função imprimir no primeiro for, após o segundo ponto vírgula temos "t++0", o correto seria "t++";

Espero ter ajudado.

 

  • 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





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

×