Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
#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
Carregando comentários...