spinhei 0 Denunciar post Postado Abril 4, 2011 tentei fazer um exercicio compilei e nao deu erro mas o programa nao funciona conforme deveria O exercicio é: Construa um algoritmo que, tendo como dados de entrada dois pontos no plano, P(x1,y1) e P(x2,y2), escreva a distância entre eles. A fórmula que efetua tal cálculo é:V(x2-x1)²+(y2-y1)² obs V=raiz quadrada meu programa ficou assim: #include <stdio.h> #include <math.h> int main( ) { float x1, x2,y1, y2; float distancia; /* Declaração de Variaveis */ printf("Digite o valor de x1\n"); scanf("%f", &x1); printf("Digite o valor de x2\n"); scanf("%f", &x2); printf("Digite o valor de y1\n"); scanf("%f", &y1); printf("Digite o valor de y2\n"); scanf("%f", &y2); /* Entrada de dados */ sqrt(((x2-x1)*(x2-x1))+((y2-y1)*(y2-y1))); /* Distancia entre dois pontos do plano cartesiano */ printf("A distancia entre os pontos e %f\n", distancia); return (0); } Quando compilo, ele roda, mais daí eu digito o x1, o x2, o y1 e o y2 e a p/ quaisquer valores sempre da 1.#QNANO ¬¬ Oque é isso ? porque nao dá certo?? me ajudeem !!! Estou usando code bloks e é linguagem c obs: ja tentei de tudo principalmente procar os floats por int mais ai o resultado sai nada a ver, eu acho que não é a expressão, mais se não for o que será?? Preciso da ajuda de alguém ;~/obrigada =) Compartilhar este post Link para o post Compartilhar em outros sites
Kairion 0 Denunciar post Postado Abril 4, 2011 Olá amigo, vi seu tópico e resolvi me cadastrar para lhe ajudar. Olhando o seu código, reparei que a variável "distancia" não é utilizada, e que apesar da conta ser efetuada, ela não é guardada em variável alguma. Testando o seu código, o único resultado que obtive foi zero. Jogando o resultado da conta para a variável "distancia", o erro foi solucionado, veja aqui: #include <stdio.h> #include <math.h> #include <stdlib.h> int main( ) { float x1, x2,y1, y2; float distancia; /* Declaração de Variaveis */ printf("Digite o valor de x1\n"); scanf("%f", &x1); printf("Digite o valor de x2\n"); scanf("%f", &x2); printf("Digite o valor de y1\n"); scanf("%f", &y1); printf("Digite o valor de y2\n"); scanf("%f", &y2); /* Entrada de dados */ distancia=sqrt(((x2-x1)*(x2-x1))+((y2-y1)*(y2-y1))); /* Distancia entre dois pontos do plano cartesiano */ printf("A distancia entre os pontos e %f\n", distancia); system("pause"); return (0); } Somente como adendo, após o seu printf adicione um 'system("pause")' para que o usuário possa visualizar o resultado, como fiz acima. OBS.: Para utilizar a função system, é necessário incluir a biblioteca stdlib.h, como fiz acima. Porém, particularmente falando, recomendaria que ao invés de repetir os termos (x2-x1)*(x2-x1), utilize a função "pow", que serve justamente para potências. Desta forma, seu código ficaria assim: #include <stdio.h> #include <stdlib.h> #include <math.h> int main( ) { float xa, xb,ya, yb; float distancia; /* Declaração de Variaveis */ printf("Digite o valor de xa\n"); scanf("%f", &xa); printf("Digite o valor de xb\n"); scanf("%f", &xb); printf("Digite o valor de ya\n"); scanf("%f", &ya); printf("Digite o valor de yb\n"); scanf("%f", &yb); /* Entrada de dados */ distancia=sqrt(pow((xb-xa),2)+pow((yb-ya),2)); /* Distancia entre dois pontos do plano cartesiano */ printf("A distancia entre os pontos e %f\n", distancia); system("pause"); } Espero ter ajudado. Abraços ;) Compartilhar este post Link para o post Compartilhar em outros sites
spinhei 0 Denunciar post Postado Abril 4, 2011 nossa fiquei até 1:30 da manha tentando descobri e nao sabia pq era --' ajudou sim obrigada! ;D eeei só uma coisa... tem como excluir esse topico? passei muito tempo tentendo para chegar um gaiato e só copiar! se for por parte do moderador pode excluir ! mesmo assim vou editar o texto retirando a pergunta! nao tem como editar depois de respondido que droga! se der para exccluir excluam por favor Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Abril 5, 2011 Spinhei, os tópicos não são excluídos por solicitação de membros a não ser que violem alguma regra do fórum. O objetivo de um fórum é ajudar os usuários e visitantes a sanarem as dúvidas. Por isso o tópico será mantido. Existe a possibilidade de alguém copiar o código, assim como existe a possibilidade de alguém produzir um código parecido/idêntico com o seu por coincidência. Mas como o problema da determinação da distância entre dois pontos não exige uma solução elaborada, o professor não pode te acusar de plágio sem provas ou sem processo administrativo (teoricamente, este tópico ficaria a seu favor. Ainda mais por você ter apenas esquecido de armazenar o resultado numa variável) Compartilhar este post Link para o post Compartilhar em outros sites
spinhei 0 Denunciar post Postado Abril 5, 2011 ok, mais que é chato é...eu que passei um tempao tentando fazer e vem um gaiato e copia... mais tudo bem eu entendo obrigada... Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Abril 5, 2011 rlx ninguem vai copiar não... no SPOJ tem algo parecido o problema PARPROX.. []s Compartilhar este post Link para o post Compartilhar em outros sites