Oi pessoal, sou iniciante na linguagem C e gostaria de entender a diferença entre dois códigos (a única coisa que muda é o tipo das variáveis).
CÓDIGO 1 (Esse não funciona) :
`
int main () {
double nac;
double am;
double ps;
printf("Digite sua nota de NAC: \n");
scanf("%f", &nac);
printf("Digite sua nota de AM: \n");
scanf("%f", &am);
printf("Digite sua nota de PS: \n");
scanf("%f", &ps);
double calculaMedia;
calculaMedia = (nac * 0.2) + (am * 0.3) + (ps * 0.5);
printf("%.1f", calculaMedia);
}`
CÓDIGO 2 (Esse funciona) :
`int main () {
float nac;
float am;
float ps;
printf("Digite sua nota de NAC: \n");
scanf("%f", &nac);
printf("Digite sua nota de AM: \n");
scanf("%f", &am);
printf("Digite sua nota de PS: \n");
scanf("%f", &ps);
float calculaMedia;
calculaMedia = (nac * 0.2) + (am * 0.3) + (ps * 0.5);
printf("%.1f", calculaMedia);
}`
Gostaria de entender porque ele funciona com o float e com o double não…
Com o double o resultado é sempre 0.00!
Obs.: Ambos os códigos estão com o include stdio.h, é que na hora de copiar aqui o fórum o distorceu.
Agradeço pela ajuda!