Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rafa101421

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

Recommended Posts

#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,a=0;
    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];/*o erro deve estar aqui,porque ao somar e inserir na matriz auxiliar os valores são todos os mesmos*/
            }

            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");
    }

}

Eu estou com um problema no meu programa que não consigo resolver, acontece que eu quero somar elementos de posições diferentes em uma matriz formada a partir de um arquivo de texto e jogar os valores em outra matriz menor, aqui 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

 

 

Como faço para somar os elementos das linha a cada 3 posições de uma matriz, no caso o resultado da soma seria isso aqui:

 

 

| 7 |11| 5 |

| 4 |12|12|

| 6 |10|12|

| 3 | 1 |14|

| 3 | 6 | 9 |

|14|12| 6 |

| 4 |13|12|

Isso funciona assim:

M[0][0]+M[0][3]+M[0][6] -> 7+0+0=7

M[0][1]+M[0][4]+M[0][7] -> 2+4+5=11

M[0][2]+M[0][5]+M[0][8] -> 0+1+4=5

 

Visto que o programa soma a cada 3 posições da Matriz e isso acontecerá em todas as linhas

 

 

Por favor, quem poder me ajudar estarei agradecido

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.