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

Matriz


viciado

Pergunta

Preenche uma matriz 20x10 com números inteiros e soma cada uma das colunas, armazenando o resultado da soma em um vetor. A seguir, o programa deverá multiplicar cada elemento da matriz pela soma da coluna e mostrar a matriz resultante.

O programa imprime a mesma resposta para todas as multiplicações. Não entendi bem esse programa

#include <stdio.h>
#include <stdlib.h>
void mult(int m[20][10]);
int main()
{
  int m[20][10];
  int i,j;
  for(i=0;i<20;i++)
     for(j=0;j<10;j++){
                       printf("preenche M[%d][%d] \n",i,j);
                       scanf("%d",&m[i][j]);
                       }
  mult(m);
  system("PAUSE");    
  return 0;
}
void mult(int m[20][10]){
     int i;
     int s1=0,s2=0,s3=0,s4=0,s5=0,s6=0,s7=0,s8=0,s9=0,s10=0;
     for(i=0;i<20;i++){
                       s1 = s1 + m[i][0];
                       s2 = s2 + m[i][1];
                       s3 = s3 + m[i][2];
                       s4 = s4 + m[i][3];
                       s5 = s5 + m[i][4];
                       s6 = s6 + m[i][5];
                       s7 = s7 + m[i][6];
                       s8 = s8 + m[i][7];
                       s9 = s9 + m[i][8];
                       s10 = s10 + m[i][9];
                       }
     int v[10];
     v[0] = s1;
     v[1] = s2;
     v[2] = s3;
     v[3] = s4;
     v[4] = s5;
     v[5] = s6;
     v[6] = s7;
     v[7] = s8;
     v[8] = s9;
     v[9] = s10;
     int j;
     int k = 0;
     int x[200];
     for(i=0;i<20;i++)
         for(j=0;j<10;j++){
                           x[k] = v[j] * m[i][j];
                           printf("\n %d",x);
                           k++;
                           }
}

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Tenho que assumir que não parei para olhar e analisar bem onde poderia estar o erro no código, ou até mesmo se ele está errado. Estou aprendendo matrizes agora em Lógica da Programação e resolvi fazer o exercício.

Se eu entendi bem é essa a questão: Uma vez tendo uma matriz qualquer você deve somar todos os elementos da coluna e depois multiplicar cada elemento da matriz por a soma da respectiva coluna. É isso?

eu tentei e ficou assim (só que eu fiz tudo em uma função só =x):

#include <stdio.h>

#define LINHA 4
#define COLUNA 5

int main(void) {
    int v[LINHA][COLUNA],s[COLUNA],i,j;
    
    /* Só tomando os valores para o vetor */
    for(i=0;i<LINHA;i++)
        for(j=0;j<COLUNA;j++) {
            printf("\n\tDigite o M[%d][%d]\t",i+1,j+1);
            scanf("%d",&v[i][j]);
        }
        
        
    /* Abaixo só mostrando a matriz digitada pelo usuário */
    printf("\n\tSua matriz:\n\n");
    for(i=0;i<LINHA;i++) {
        for(j=0;j<COLUNA;j++) printf("%6d",v[i][j]);
        putchar('\n');
    }


    /* Aqui começa a brincadeira, vou somar os valores das
     * colunas e armazenar no vetor "s" que foi criado, anteriormente,
     * com o tamanho da quantidade de colunas. */
    for(j=0;j<COLUNA;j++)
        for(i=0,s[j]=0;i<LINHA;i++)
            s[j] = s[j] + v[i][j];
    
    /* Uma vez o vetor com a soma de todas as colunas concluído
     * é hora de refazer a matriz */
    for(i=0;i<LINHA;i++)
        for(j=0;j<COLUNA;j++) v[i][j] = v[i][j]*s[j];
    
    
    /* Imprimindo a nova matriz...;D */
    printf("\n\tSua nova matriz:\n\n");
    for(i=0;i<LINHA;i++) {
        for(j=0;j<COLUNA;j++) printf("%6d",v[i][j]);
        putchar('\n');
    }
    return 0;
}

No exercício você falou 20x10... mas 20x10 é muito grande pra fazer os testes... aí fiz os testes com matrizes pequenas tipo 4x5 e 5x5... deu certo... espero estar ajudando em algo... (se acharem algum erro tosco no meu código postem, também estou aprendendo agora matrizes xD).

Até mais,

Editado por jth.
Link para o comentário
Compartilhar em outros sites

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,7k
×
×
  • Criar Novo...