[問題] 求二點間距離

看板C_and_CPP作者 (被找麻煩了...)時間14年前 (2010/08/23 23:13), 編輯推噓0(0012)
留言12則, 5人參與, 最新討論串1/1
遇到的問題: 題目是求二點間直線距離,由使用者輸入二點座標,輸出距離 希望得到的正確結果:求出直線距離 程式跑出來的錯誤結果:距離不管座標輸入多少都是0... 開發平台:Dev-C++ 有問題的code:我寫出來的程式 //求二點座標的距離 #include<iostream> #include "math.h" using namespace std; int main() { //宣告座標 x1,y1,x2,y2,距離xd,yd int x1=0,y1=0,x2=0,y2=0; float xd=0,yd=0; //二點間距離 float Distance; //使用者輸入座標1 cout << "Please input the coordinate:"; cin >> x1; cout << "Please input the coordinate:"; cin >> y1; //使用者輸入座標2 cout << "Please input the coordinate:"; cin >> x2; cout << "Please input the coordinate:"; cin >> y2; sqrt(xd) == pow(2,(x2-x1)); sqrt(yd) == pow(2,(y2-y1)); //開始計算 cout << "The distance between two spots is" << sqrt(xd) << endl; system("PAUSE"); } 補充說明:這是超笨的寫法我知道...但是重點是用這樣還求不出答案Q"Q 想請問應該怎麼更正?另外,座標可以用string寫嗎?那如果改成str又該      怎麼寫呢?謝謝大家~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.227.101.237

08/23 23:17, , 1F
嗯...編譯的確會過...
08/23 23:17, 1F

08/23 23:18, , 2F
sqrt(xd) == pow(2,(x2-x1)); 這行的意思是在"判斷"根號xd
08/23 23:18, 2F

08/23 23:19, , 3F
與(x2-x1)^2有沒有相等.
08/23 23:19, 3F

08/23 23:19, , 4F
一個= 賦值 , 兩個= 比較
08/23 23:19, 4F

08/23 23:20, , 5F
那請問應該怎麼改呢?是要改成=嗎?
08/23 23:20, 5F

08/23 23:20, , 6F
呃對不起 三樓應該是 2^(x2-x1) = =a
08/23 23:20, 6F

08/23 23:20, , 7F
試試看 d = sqrt(pow(x2-x1, 2.0)+pow(y2-y1, 2.0));
08/23 23:20, 7F

08/23 23:24, , 8F
可以了!謝謝你>/////<
08/23 23:24, 8F

08/24 18:27, , 9F
笨到沒有結果就不是笨的問題了。你說的「笨」,通常意思
08/24 18:27, 9F

08/24 18:28, , 10F
是有結果,但寫得很囉唆;這跟程式根本不知道在幹嘛
08/24 18:28, 10F

08/24 18:29, , 11F
有本質上的差距。連 = 和 == 都可以搞錯不叫笨。
08/24 18:29, 11F
謝謝指教^^,其實我是知道=和==的差別的~從我的宣告其實可以看出來我修改過 像是我的Distance根本沒有用到... 因為一直得不出正確結果所以在某些地方修正的時候沒有通通改回來~不過還是謝 謝大家的幫忙~又學了一課^^

08/24 19:00, , 12F
樓上好嗆的感覺(?
08/24 19:00, 12F
※ 編輯: silia 來自: 125.227.94.213 (08/24 22:48) ※ 編輯: silia 來自: 125.227.94.213 (08/24 22:49)
文章代碼(AID): #1CSf0MXl (C_and_CPP)