#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|
Por favor, quem poder me ajudar estarei agradecido