看板 C_and_CPP 關於我們 聯絡資訊
遇到的問題: 題目是求二點間直線距離,由使用者輸入二點座標,輸出距離 希望得到的正確結果:求出直線距離 程式跑出來的錯誤結果:距離不管座標輸入多少都是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
suhorng:嗯...編譯的確會過... 08/23 23:17
suhorng:sqrt(xd) == pow(2,(x2-x1)); 這行的意思是在"判斷"根號xd 08/23 23:18
suhorng:與(x2-x1)^2有沒有相等. 08/23 23:19
x000032001:一個= 賦值 , 兩個= 比較 08/23 23:19
silia:那請問應該怎麼改呢?是要改成=嗎? 08/23 23:20
suhorng:呃對不起 三樓應該是 2^(x2-x1) = =a 08/23 23:20
suhorng:試試看 d = sqrt(pow(x2-x1, 2.0)+pow(y2-y1, 2.0)); 08/23 23:20
silia:可以了!謝謝你>/////< 08/23 23:24
MOONRAKER:笨到沒有結果就不是笨的問題了。你說的「笨」,通常意思 08/24 18:27
MOONRAKER:是有結果,但寫得很囉唆;這跟程式根本不知道在幹嘛 08/24 18:28
MOONRAKER:有本質上的差距。連 = 和 == 都可以搞錯不叫笨。 08/24 18:29
謝謝指教^^,其實我是知道=和==的差別的~從我的宣告其實可以看出來我修改過 像是我的Distance根本沒有用到... 因為一直得不出正確結果所以在某些地方修正的時候沒有通通改回來~不過還是謝 謝大家的幫忙~又學了一課^^
diabloevagto:樓上好嗆的感覺(? 08/24 19:00
※ 編輯: silia 來自: 125.227.94.213 (08/24 22:48) ※ 編輯: silia 來自: 125.227.94.213 (08/24 22:49)