Ola galera estou querendo imprimir a médias de tres valores, para isso estou utilizando a funçao em C. Sei que esse calculo seria resolvido de um modo mais simples, mas tenho que usar a função…
Bom… Aqui esta o programa. alguem pode me ajudar a identificar o erro?
Obrigado
# include
# include
float media_num (float m);
main()
{
int x,m;
float calc;
int vet[5];
for (x=1;x<=3;x++){
printf ("Nota %d:\n",x);
scanf ("%f",&vet[x]);
}
printf ("A media dos valores:\n");
for (x=1;x<=3;x++){
printf ("%d:\n",vet[x]);
}
printf ("E:\n %f",media_num(calc));
system ("pause");
}
int media_num(int m){
int x,calc=0,vet[5];
for (x=1;x<=3;x++){
calc = calc + vet[x];
}
calc=(calc/3);
return calc;
}
Eu olhei com pressa, porque estou com pressa, mas eu não vi nenhum erro ai, não!
Cara se voce quiser repetir só até o 3, x=1;x<=3;x++... Ta tudo certo, mas acho que isso nao vai ser bem correspondido.
Apenas repare que você definiu o parâmetro de sua função como inteiro mas na chamada usa um float.
Talvez a média deva ser calculada como float e o parâmetro deva ser ou outro, ou ainda não ter parâmetros. Repare que quando você declara o vetor x dentro de sua função esta é uma variável local, não é aquele vetor que você leu na main, ou use a variável global ou passe como parâmetro para sua função.
float media_num() {
float calc;
int x;
calc = 0;
for (x=1;x<=3;x++) calc += vet[x]; /* vet é variável global */ return (calc / 3); }Note também que em C os vetores são alocados com índice a partir de 0.