HilarYo Posted February 22, 2013 at 04:20 PM Report #496650 Posted February 22, 2013 at 04:20 PM (edited) #include <stdio.h> int main(int argc, const char * argv[]) { float valor, aprox, divisao=0,somaap,resultado=0,val; printf("Valor?\n"); scanf("%f",&valor); do { printf("Aproximado?\n"); scanf("%f",&aprox); if((aprox < 1) || (aprox > (valor/2))) printf("Incorrecto!!!"); } while ((aprox<1) || (aprox > (valor/2))); do { divisao=valor/aprox; somaap=divisao+aprox; resultado=somaap/2; val=(resultado*resultado)-10; divisao=resultado; } while (val>0,0001); printf("Resultado:%f",resultado); } Isto cria um loop no ultimo ciclo for: o objectivo é transportar o valor do resultado para a divisão até o valor val seja inferior a 0,0001 alguém pode ajudar? Obrigado! Edited February 22, 2013 at 04:53 PM by pmg Falta LP no GeSHi
HappyHippyHippo Posted February 22, 2013 at 04:23 PM Report #496651 Posted February 22, 2013 at 04:23 PM o indicador de unidades é o ponto '.' e não a virgula ',' IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
pmg Posted February 22, 2013 at 04:57 PM Report #496657 Posted February 22, 2013 at 04:57 PM (edited) Para explicar o que acontece, a tua relação while (val>0,0001) é composta por duas relações: a primeira (calculada mas ignorada) é val>0; a segunda é 0001. O resultado da condição toda é o resultado da última condição: 0001 é o mesmo que 1 em notação octal é o mesmo que 1 é o mesmo que verdade. Ou seja, o ciclo nunca para. Sugestão: configura o teu compilador para emitir o máximo possível de warnings, e não aceites programas com warnings. No gcc, com -Wall (ou -Wunused-value) o teu código despoleta um warning. Edited February 22, 2013 at 05:00 PM by pmg sugestão What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now