Estou com um problema no cálculo da média dos elementos de uma matriz qualquer, por meio de uma função. O código que segue faz o seguinte, na função principal: lê, na primeira linha de um arquivo externo de texto, dois valores inteiros referentes à quantidade de linhas e de colunas de uma matriz, criando a matriz logo em seguida. No mais, ele lê os elementos da matriz (localizados no mesmo arquivo, logo abaixo da linha que contém o tamanho da matriz) e os mostra, a fim de testar a leitura. O arquivo de texto seria algo assim, por exemplo:
2 2 => linhas e colunas
1 2 => elementos
3 4 => elementos
Bom, a matriz é passada como parâmetro para a função "media_matriz", mas ela não retorna o valor correto. Creio que o erro esteja na variável soma. (lembrando que a função "media_matriz" só aceita matrizes quadradas, e o primeiro parâmetro "n" é justamente o número de linhas e de colunas).
Enfim, eu costumava fazer esse tipo de exercício em linguagens como o C#, e em IDEs como o Visual Studio, então me parece que sem os auxílios de conversão de variáveis, concatenação e gerenciamento de memória, fiquei perdido :P.
Agradeço desde já!
float media_matriz(int n,float mat[][100]){// variaveisint i, j;float soma =0.0, media =0.0;// processamentofor(i =0; i < n; i++)for(j =0; j < n; j++)
soma += mat[i][j];
media = soma/((float)n*(float)n);// saidareturn(media);}int main(void){// variaveis
FILE* arquivo = fopen("texto.txt","r");int j, i, l, c;// entrada
fscanf(arquivo,"%i %i",&l,&c);float m[l][c];// processamentofor(i =0; i < l; i++)for(j =0; j < c; j++)
fscanf(arquivo,"%f",&m[i][j]);// saidafor(i =0; i < l; i++){for(j =0; j < c; j++)
printf("M[%d, %d]: %f ", i, j, m[i][j]);
printf("\n");}
printf("media: %f", media_matriz(l,m));
fclose(arquivo);return(0);}
Utilizamos cookies e tecnologias semelhantes de acordo com a nossa Política de Privacidade, e ao continuar navegando, você concorda com estas condições.
Pergunta
Henrique0352
Olá!
Estou com um problema no cálculo da média dos elementos de uma matriz qualquer, por meio de uma função. O código que segue faz o seguinte, na função principal: lê, na primeira linha de um arquivo externo de texto, dois valores inteiros referentes à quantidade de linhas e de colunas de uma matriz, criando a matriz logo em seguida. No mais, ele lê os elementos da matriz (localizados no mesmo arquivo, logo abaixo da linha que contém o tamanho da matriz) e os mostra, a fim de testar a leitura. O arquivo de texto seria algo assim, por exemplo:
Link 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.