keroPudim Postado Dezembro 3, 2021 Denunciar Share Postado Dezembro 3, 2021 (editado) 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 Dezembro 3, 2021 por keroPudim Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 britivaldo Postado Dezembro 4, 2021 Denunciar Share Postado Dezembro 4, 2021 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
keroPudim
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
mas a minha função somar retorna 0 e eu n consigo resolver isso, o que esta errado ?
Editado por keroPudimLink para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
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.