Breno R2 Postado 17 de junho de 2011 Denunciar Compartilhar Postado 17 de junho de 2011 Olá, gostaria de saber onde estou errando nesse código. O programa serve para calcular a distância entre dois pontos quaisquer. #include <stdio.h> int main() { float x1, x2, y1, y2; int resp1; float partexform; float parteyform; float partetotform; printf("Se possuir a distância entre os dois pontos digite 0, se não, tecle 1: "); scanf("%d", &resp1); partexform==(x2-x1)^2; parteyform==(y2-y1)^2; partetotform==(partexform+parteyform)^1/2; if (resp1==1) { printf("Digite x1: "); scanf("%f", &x1); printf("Digite x2: "); scanf("%f", &x2); printf("Digite y1: "); scanf("%f", &y1); printf("Digite y2: "); scanf("%f", &y2); printf("A distância entre esses dois pontos é: %.2f", partetotform); } return (0); } Essa é só uma parte do código (pois este ainda vai abranger as outras possibilidades -> ex.: se eu quiser saber o valor de x1), e ele roda tranquilamente até o final. O problema é q o resultado q ele dá no final é sempre 0.00000, Já testei várias vezes, e não consegui encontrar o problema. Se alguém puder me ajudar com isso, e também com outras dicas, eu agradeço. P.S.: Com certeza existe uma forma mais fácil e com um código mais enxuto de fazer esse programa, mas estou fazendo uso apenas dos conhecimentos q eu adquiri até agora como iniciante no mundo da programação. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Maddo Garan Postado 17 de junho de 2011 Denunciar Compartilhar Postado 17 de junho de 2011 A princípio, três problemas: abaixo do primeiro scanf tu usa "==" para atribuir valores, quando deveria ter usado "=". Os dois sinais de igual é para comparação de valores. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Maddo Garan Postado 17 de junho de 2011 Denunciar Compartilhar Postado 17 de junho de 2011 (editado) Mais dois problemas. Primeiro, vai ter que usar a função pow(x, y) pra calcular a potenciação. Pra usá-la, coloque #include <math.h> no início do código. Segundo, as linhas: partexform==(x2-x1)^2; parteyform==(y2-y1)^2; partetotform==(partexform+parteyform)^1/2; Devem ficar entre essas duas: scanf("%f", &y2); printf("A distância entre esses dois pontos é: %.2f", partetotform); Do jeito que fizeste, o cálculo é realizado antes da atribuição de valores. Editado 17 de junho de 2011 por Maddo Garan Citar Link para o comentário Compartilhar em outros sites More sharing options...
Maddo Garan Postado 17 de junho de 2011 Denunciar Compartilhar Postado 17 de junho de 2011 Pra dar certo agora: substitua 1/2 por 0.5, tá pronto. moderas, desculpem o 3-hit combo. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Breno R2 Postado 18 de junho de 2011 Autor Denunciar Compartilhar Postado 18 de junho de 2011 Muito obrigado pelas dicas Maddo Garan. Estou sem tempo de testá-las agora, mas amanhã ou domingo eu digo o resultado. Vlw! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Gabriel Vincent Postado 19 de junho de 2011 Denunciar Compartilhar Postado 19 de junho de 2011 (editado) Muito obrigado pelas dicas Maddo Garan. Estou sem tempo de testá-las agora, mas amanhã ou domingo eu digo o resultado. Vlw! Breno, outra dica interessante é que, aqui no fórum, sempre que você postar código, vc use as quotes de codigo. Facilita muito a leitura do código, pois preserva a indentação, e fica mais fácil te ajudar! Editado 19 de junho de 2011 por Gabriel Vincent Citar Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados
Participe do debate
Você pode postar agora e se registrar depois. Se você tem uma conta, entre agora para postar com ela.