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

Problema ao somar elementos de diferentes posições de uma Matriz


rafael11

Pergunta

Bem, eu estou com um problema ao manipular uma matriz formada a partir de um arquivo de texto, certo o meu programa inicia certinho os dados do arquivo são armazenados na matriz com isso não tenho nenhuma dificuldade o que eu realmente estou tendo problema é com a soma dos elementos da matriz que deve ser realizados a cada 3 posições na mesma linha e logo após sendo inserido em uma matriz auxiliar aqui está o arquivo:

7
9

7 2 0    0 4 1    0 5 4
0 8 9    2 3 0    2 1 3
4 0 6    2 8 5    0 2 1
1 1 3    2 0 6    0 0 5
0 3 2    2 2 5    1 1 2
2 1 6    7 4 0    5 7 0
1 9 5    3 2 6    0 2 1

No caso o resultado das somas da matriz principal que seria este resultado apresentado na matriz auxiliar:

| 7 |11| 5 |
| 4 |12|12|
| 6 |10|12|
| 3 | 1 |14|
| 3 | 6 | 9 |
|14|12| 6 |
| 4 |13|12|

Quem poder me ajudar estarei muito agradecido

Aqui o programa:

#include <stdio.h>
#include <stdlib.h>
#define MAX 100

int main()
{
    int M[MAX][MAX],i=0,i1=0,i2=0,j1=0,j=0,l,c,S[7][3],soma;
    FILE *arq;
    arq=fopen("text.txt", "r");

    printf("digite as dimensoes da Matriz:");
    scanf("%d%d",&l,&c);

    for(i=0; i<l; i++)
    {
        for(j=0; j<c; j++)
        {
            fscanf(arq,"%d",&M[i][j]);
        }
    }

    printf("\n");
    printf("MATRIZ INICIAL\n\n");

    for(i=0; i<l; i++)
    {
        for(j=0; j<c; j++)
        {
            printf("%d  ",M[i][j]);

        }
        printf("\n");

    }

    for(i=0; i<l; i++)//laço que pula a linha da matriz
    {

        for(j=0; j<c; j++)//laço que permanece em determinada coluna
        {
            soma=0;

            for(i1=0; i1<c; i1=i1+3)//laço que soma os valores a cada 3 posições
            {
                soma+=M[i][i1];//soma os elementos
            }

            for(i2=0; i2<l; i2++)
            {
                for(j1=0; j1<3; j1++)
                {
                    S[i2][j1]=soma;//armazena em outra matriz
                }
            }

        }
    }
    printf("\n");

    printf("TABELA FORMADA A PARTIR DA MATRIZ INICIAL\n\n");

    for(i=0; i<l; i++)
    {
        for(j=0; j<3; j++)
        {
            printf("%d ",S[i][j]);

        }
        printf("\n");
    }

}

 

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...