14403 - Struct - Vector2   

Description

給定一個名為Vector2的struct,如下列所示:

typedef struct Vector2
{
    double x;
    double y;
} Vector2;

 

再給定主要執行程式main.c (題號.c)、以及Header檔function.h (題號.h);請試著完成Header檔中未實現的函式:Add()、Subtract()、Multiple()、Divide()、DotProduct()



 

function.c

#include "function.h"
 
Vector2 Add(Vector2 v1, Vector2 v2)
{
    //TODO
}
 
Vector2 Subtract(Vector2 v1, Vector2 v2)
{
    //TODO
}
 
Vector2 Multiple(Vector2 v1, double d)
{
    //TODO
}
 
Vector2 Divide(Vector2 v1, double d)
{
    //TODO
}
 
double DotProduct(Vector2 v1, Vector2 v2)
{
    //TODO
}

 

 

Note:

內積(dot product)是兩個向量之間的一種運算,該運算會產生一個純量(即一個單一的數值)。在幾何學中,內積可以用來測量兩個向量之間的相似性或夾角,並且它具有許多應用,例如在物理學中計算力和位移的關係。

內積的計算方法

假設有兩個向量 AB,它們的座標分別為:

  • 向量 A = (x₁, y₁)

  • 向量 B = (x₂, y₂)

向量 AB 的內積可以用以下公式計算:

 

Input

輸入符合以下格式

op

x1 y1

(x2 y2 or d)

 

Note:

  1. 如果op是’+’或是’-‘,則會再給一組x2, y2用來代表另一個向量的值

  2. 如果op是’*’或是’/‘,則會再給一個浮點數d

  3. 不會出現不合理的數值運算,例如除以0

  4. 運算後的結果不會超過double的data range

Output

輸出符合以下格式:

 

(x, y)

 

Note:

 

  1. 輸出的最後必須要有一個換行符號 ('\n')

  2. 無需處理輸出

Sample Input  Download

Sample Output  Download

Partial Judge Code

14403.c

Partial Judge Header

14403.h

Tags




Discuss