Deufos Postado Maio 4, 2019 Denunciar Share Postado Maio 4, 2019 (editado) Olá, boa tarde. Estou com duvida sobre o porquê do meu código não rodar. Eu pesquisei na internet e aparentemente ele esta 100%, sem nenhum erro. #include <stdio.h> #include <stdlib.h> void somatorioMedia(float *a, int n, float *somatorio, float *media); int main(){ int i; float a[10]; int n = 10; float *somatorio; *somatorio = 0; float *media; *media = 0; for(i=0; i<10; i++){ printf("n[%i]: ", i); scanf("%f", &a[i]); } somatorioMedia(a, n, somatorio, media); printf("Somatorio: %.2f\n", *somatorio); printf("Media: %.2f", *media); return 0; } void somatorioMedia(float *a, int n, float *somatorio, float *media){ int i; for(i=0; i<n; i++){ *somatorio += a[i]; } *media = *somatorio / n; } Editado Maio 4, 2019 por Deufos Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Hazzu Postado Agosto 14, 2019 Denunciar Share Postado Agosto 14, 2019 Quando você define uma variável do tipo float * está criando apenas um ponteiro, com um endereço qualquer, que pode ser um local inacessível ("Falha de segmentação."). Então você teria que alocar este ponteiro, usando a função malloc. Porém para o seu problema, Somatorio e media não precisam ser ponteiros. Basta que você passe o endereço delas para a função somatoriomedia() com o operador "&". Note que agora os ponteiros da função somatoriomedia já recebem endereços alocados. #include <stdio.h> #include <stdlib.h> void somatorioMedia(float *a, int n, float *somatorio, float *media); int main(){ int i; float a[10]; int n = 10; float somatorio; float media; for(i=0; i<10; i++){ printf("n[%i]: ", i); scanf("%f", &a[i]); } somatorioMedia(a, n, &somatorio, &media); printf("Somatorio: %.2f\n", somatorio); printf("Media: %.2f\n", media); return 0; } void somatorioMedia(float *a, int n, float *somatorio, float *media){ int i; for(i=0; i<n; i++){ *somatorio += a[i]; } *media = *somatorio / n; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Deufos
Olá, boa tarde.
Estou com duvida sobre o porquê do meu código não rodar. Eu pesquisei na internet e aparentemente ele esta 100%, sem nenhum erro.
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.