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

ajuda com matriz


keroPudim

Pergunta

preciso fazer um programa com duas sub rotinas

uma vai receber os valores de uma matriz 10x5 de números reais

a outra soma os valores abaixo da linha 6

ate agora eu fiz isso

#include <stdio.h>

float mat[10][5];
int a, b;

void recebe(float x);
float soma();

int main() {

    float q, x;

    for(a=0;a<10;a++){

        for(b=0;b<5;b++){

            printf("digite o valor da %da casa da %da linha: ", b+1, a+1);
            scanf("%f",&x);
            recebe(x);
        }
    }

    q = soma();
    printf("a soma dos valors das linhas inferiores a 6 e: %f ", q);

    return 0;

}

void recebe(float x) {

    x = mat[a][b];

}

float soma() {

    float x, y;

    for(a=0;a<10;a++){

        for(b=0;b<5;b++){

            if(a>5){
                
            mat[a][b] = y;
            x = x + y;

            }
        }
    }
    
    return (x);
}

mas a minha função somar retorna 0 e eu n consigo resolver isso, o que esta errado ?

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

1 resposta a esta questão

Posts Recomendados

  • 0

Siga mais o que diz o "enunciado", a receita diz que a função 'recebe'; isso significa que a função possui argumentos específicos, no caso para uma dada matriz 10x5

#include <stdio.h>
void
entrada(unsigned nLINHA, unsigned nCOLUNA, float matriz[][nCOLUNA]) {
    float numero= 0;
    printf("%s%u%s", "Entre com seguimento de ", nLINHA * nCOLUNA, " numeros: ");
    for (unsigned l= 0;    l < nLINHA;    ++l) {
        for (unsigned c= 0;   c < nCOLUNA;    ++c) {
            
            numero= 0; scanf(" %f", &numero),
            matriz[l][c]= numero;
    }    }    
    return;
}

int
main(void) {
    float tabela[5][1]; entrada(5, 1, tabela);
    return 0;
}

Observe a função entrada com 3 argumentos: numero de linhas e colunas da matriz, e a matriz. Dentro, a função itera através de duas estruturas de loop aninhadas para gravar os números digitados pelo usuário. A função lê primeiro por meio da scanf, depois atribui o valor lido a célula (elemento[l, c]) atual na matriz.

*A função SOMA deve ter os mesmos argumentos e itera segundo o exercício em apenas a partir de x das linhas da matriz.

#include <stdio.h>
void
entrada(unsigned nLINHA, unsigned nCOLUNA, float matriz[][nCOLUNA]) {
    float numero= 0;
    printf("%s%u%s", "Entre com seguimento de ", nLINHA * nCOLUNA, " numeros: ");
    for (unsigned l= 0;    l < nLINHA;    ++l) {
        for (unsigned c= 0;   c < nCOLUNA;    ++c) {
            
            numero= 0; scanf(" %f", &numero),
            matriz[l][c]= numero;
    }    }    
    return;
}
float
adicao(unsigned nLINHA, unsigned nCOLUNA, float matriz[][nCOLUNA], unsigned xLinha) {
    float soma= 0;
    for (unsigned l= xLinha - 1;    l < nLINHA;    ++l) {
        for (unsigned c= 0;   c < nCOLUNA;    ++c) {
            
            soma= matriz[l][c] + soma;
    }    }
    return soma;
}
int
main(void) {
    float tabela[5][1]; entrada(5, 1, tabela);
    float soma= adicao(5, 1, tabela, 5);
    printf("%s%f\n", "SOMA(a partir da linha 5): ", soma);
    return 0;
}

A diferença nos argumentos entre entrada e soma é o parâmetro xLinha; que indica o início do somatório.

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,3k
    • Posts
      652,4k
×
×
  • Criar Novo...