PsySc0rpi0n
Power Member
Compilaste o código?
Isso deveria ter dado erro a compilar
Não deu porque os erros foram cometidos quando escrevi aqui o code... Não devo ter usado o copiar/colar!
Sim, ele tem ai uns 2/3 erros no código ("" a mais faltam os {} e não há getch () ou é getchar())
Em todo o caso que valores estás a usar para num1 e num2?
Já corrigi. Penso que agora está correcto.
na multiplicaçao da resultado errado? acho que na multiplicaçao de inteiros podes usar int como reultado..
quanto a divisao eu normalmente faço:
float a;
int b, c;
a=(float)b/(float)c;
Faz diferença ter (float) (num1 / num2) ou ter float (num1 / num2) ou ter como tu colocaste ali????
porque como tu tens:
a=(float)(b/c);
ele primeiro faz b/c e so depois e que converte para float se nao me engano e isso da resultados errados
Eu lembrei-me se haveria ordem pela qual o programa executa os cálculos. Mas pensei que o float tivesse igual "direito" ao multiplicar, dividir, módulo (%), potências, raízes e etc.
Se assim fôr, qual é a diferença de transformar um valor numa variável antes ou depois de terem sido feitos cálculos com ela?
E se falarmos numa situação hipotética como se fosse possível armazenar um valor numa variável antes de declarar qual o tipo de variável, qual seria o formato do valor armazenado na variável? Ou seja, se desse para atribuir um valor a uma variável que fosse o resultado de uma divisão entre dois valores quaisquer, sem declararmos o tipo de variável e depois pedissemos para ser mostrado esse valor com o printf (), como seria apresentado o resultado?
O que eu queria saber com isto é se ao declararmos as variáveis como sendo de um tipo ou de outro, estamos a "obrigar" o programa a ler o valor daquela divisão de uma determinada forma consoante o tipo de variável e assim estarmos a limitar a precisão do resultado ou se independentemente do tipo de variável, o resultado será sempre exacto e preciso!!!
Não sei se me consegui fazer entender...
resumindo o que disse, substitui esta linha:
printf ("A divisão da: %f",(float) (num1 / num2));
por:
printf ("A divisão da: %f",(float)num1 / (float) num2));
Posso tentar isso e ver o que dá!!!