# Program for dot product and cross product of two vectors

There are two vector **A** and **B** and we have to find the dot product and cross product of two vector array. Dot product is also known as scalar product and cross product also known as vector product.

**Dot Product –** Let we have given two vector **A** = a1 * i + a2 * j + a3 * k and **B** = b1 * i + b2 * j + b3 * k. Where i, j and k are the unit vector along the x, y and z directions. Then dot product is calculated as dot product = a1 * b1 + a2 * b2 + a3 * b3

**Example –**

A= 3 * i + 5 * j + 4 * kB= 2 * i + 7 * j + 5 * k dot product = 3 * 2 + 5 * 7 + 4 * 5 = 6 + 35 + 20 = 61

**Cross Product –** Let we have given two vector **A** = a1 * i + a2 * j + a3 * k and **B** = b1 * i + b2 * j + b3 * k. Then cross product is calculated as cross product = (a2 * b3 – a3 * b2) * i + (a3 * b1 – a1 * b3) * j + (a1 * b2 – a2 * b1) * k, where [(a2 * b3 – a3 * b2), (a3 * b1 – a1 * b3), (a1 * b2 – a2 * b1)] are the coefficient of unit vector along i, j and k directions.

**Example –**

A= 3 * i + 5 * j + 4 * kB= 2 * i + 7 * j + 5 * k cross product = (5 * 5 - 4 * 7) * i + (4 * 2 - 3 * 5) * j + (3 * 7 - 5 * 2) * k = (-3)*i + (-7)*j + (11)*k

**Example –**

Input:vect_A[] = {3, -5, 4} vect_B[] = {2, 6, 5}Output:Dot product: -4 Cross product = -49 -7 28

**Code-**

## C++

`// C++ implementation for dot product ` `// and cross product of two vector. ` `#include <bits/stdc++.h> ` `#define n 3 ` ` ` `using` `namespace` `std; ` ` ` `// Function that return ` `// dot product of two vector array. ` `int` `dotProduct(` `int` `vect_A[], ` `int` `vect_B[]) ` `{ ` ` ` ` ` `int` `product = 0; ` ` ` ` ` `// Loop for calculate cot product ` ` ` `for` `(` `int` `i = 0; i < n; i++) ` ` ` ` ` `product = product + vect_A[i] * vect_B[i]; ` ` ` `return` `product; ` `} ` ` ` `// Function to find ` `// cross product of two vector array. ` `void` `crossProduct(` `int` `vect_A[], ` `int` `vect_B[], ` `int` `cross_P[]) ` ` ` `{ ` ` ` ` ` `cross_P[0] = vect_A[1] * vect_B[2] - vect_A[2] * vect_B[1]; ` ` ` `cross_P[1] = vect_A[2] * vect_B[0] - vect_A[0] * vect_B[2]; ` ` ` `cross_P[2] = vect_A[0] * vect_B[1] - vect_A[1] * vect_B[0]; ` `} ` ` ` `// Driver function ` `int` `main() ` `{ ` ` ` ` ` `int` `vect_A[] = { 3, -5, 4 }; ` ` ` `int` `vect_B[] = { 2, 6, 5 }; ` ` ` `int` `cross_P[n]; ` ` ` ` ` `// dotProduct function call ` ` ` `cout << ` `"Dot product:"` `; ` ` ` `cout << dotProduct(vect_A, vect_B) << endl; ` ` ` ` ` `// crossProduct function call ` ` ` `cout << ` `"Cross product:"` `; ` ` ` `crossProduct(vect_A, vect_B, cross_P); ` ` ` ` ` `// Loop that print ` ` ` `// cross product of two vector array. ` ` ` `for` `(` `int` `i = 0; i < n; i++) ` ` ` ` ` `cout << cross_P[i] << ` `" "` `; ` ` ` `return` `0; ` `} ` |

*chevron_right*

*filter_none*

## Java

`// java implementation for dot product ` `// and cross product of two vector. ` `import` `java.io.*; ` ` ` `class` `GFG { ` ` ` ` ` `static` `int` `n = ` `3` `; ` ` ` ` ` `// Function that return ` ` ` `// dot product of two vector array. ` ` ` `static` `int` `dotProduct(` `int` `vect_A[], ` `int` `vect_B[]) ` ` ` `{ ` ` ` ` ` `int` `product = ` `0` `; ` ` ` ` ` `// Loop for calculate cot product ` ` ` `for` `(` `int` `i = ` `0` `; i < n; i++) ` ` ` `product = product + vect_A[i] * vect_B[i]; ` ` ` `return` `product; ` ` ` `} ` ` ` ` ` `// Function to find ` ` ` `// cross product of two vector array. ` ` ` `static` `void` `crossProduct(` `int` `vect_A[], ` `int` `vect_B[], ` ` ` `int` `cross_P[]) ` ` ` ` ` `{ ` ` ` ` ` `cross_P[` `0` `] = vect_A[` `1` `] * vect_B[` `2` `] ` ` ` `- vect_A[` `2` `] * vect_B[` `1` `]; ` ` ` `cross_P[` `1` `] = vect_A[` `2` `] * vect_B[` `0` `] ` ` ` `- vect_A[` `0` `] * vect_B[` `2` `]; ` ` ` `cross_P[` `2` `] = vect_A[` `0` `] * vect_B[` `1` `] ` ` ` `- vect_A[` `1` `] * vect_B[` `0` `]; ` ` ` `} ` ` ` ` ` `// Driver code ` ` ` `public` `static` `void` `main(String[] args) ` ` ` `{ ` ` ` `int` `vect_A[] = { ` `3` `, -` `5` `, ` `4` `}; ` ` ` `int` `vect_B[] = { ` `2` `, ` `6` `, ` `5` `}; ` ` ` `int` `cross_P[] = ` `new` `int` `[n]; ` ` ` ` ` `// dotProduct function call ` ` ` `System.out.print(` `"Dot product:"` `); ` ` ` `System.out.println(dotProduct(vect_A, vect_B)); ` ` ` ` ` `// crossProduct function call ` ` ` `System.out.print(` `"Cross product:"` `); ` ` ` `crossProduct(vect_A, vect_B, cross_P); ` ` ` ` ` `// Loop that print ` ` ` `// cross product of two vector array. ` ` ` `for` `(` `int` `i = ` `0` `; i < n; i++) ` ` ` ` ` `System.out.print(cross_P[i] + ` `" "` `); ` ` ` `} ` `} ` ` ` `// This code is contributed by vt_m ` |

*chevron_right*

*filter_none*

## Python3

`# Python3 implementation for dot product ` `# and cross product of two vector. ` ` ` `n ` `=` `3` ` ` `# Function that return ` `# dot product of two vector array. ` `def` `dotProduct(vect_A, vect_B): ` ` ` ` ` `product ` `=` `0` ` ` ` ` `# Loop for calculate cot product ` ` ` `for` `i ` `in` `range` `(` `0` `, n): ` ` ` `product ` `=` `product ` `+` `vect_A[i] ` `*` `vect_B[i] ` ` ` ` ` `return` `product ` ` ` `# Function to find ` `# cross product of two vector array. ` `def` `crossProduct(vect_A, vect_B, cross_P): ` ` ` ` ` `cross_P.append(vect_A[` `1` `] ` `*` `vect_B[` `2` `] ` `-` `vect_A[` `2` `] ` `*` `vect_B[` `1` `]) ` ` ` `cross_P.append(vect_A[` `2` `] ` `*` `vect_B[` `0` `] ` `-` `vect_A[` `0` `] ` `*` `vect_B[` `2` `]) ` ` ` `cross_P.append(vect_A[` `0` `] ` `*` `vect_B[` `1` `] ` `-` `vect_A[` `1` `] ` `*` `vect_B[` `0` `]) ` ` ` ` ` `# Driver function ` `if` `__name__` `=` `=` `'__main__'` `: ` ` ` `vect_A ` `=` `[` `3` `, ` `-` `5` `, ` `4` `] ` ` ` `vect_B ` `=` `[` `2` `, ` `6` `, ` `5` `] ` ` ` `cross_P ` `=` `[] ` ` ` `# dotProduct function call ` ` ` `print` `(` `"Dot product:"` `, end ` `=` `" "` `) ` ` ` `print` `(dotProduct(vect_A, vect_B)) ` ` ` `# crossProduct function call ` ` ` `print` `(` `"Cross product:"` `, end ` `=` `" "` `) ` ` ` `crossProduct(vect_A, vect_B, cross_P) ` ` ` `# Loop that print ` `# cross product of two vector array. ` ` ` `for` `i ` `in` `range` `(` `0` `, n): ` ` ` `print` `(cross_P[i], end ` `=` `" "` `) ` ` ` `# This code is contributed by ` `# Sanjit_Prasad ` |

*chevron_right*

*filter_none*

## C#

`// C# implementation for dot product ` `// and cross product of two vector. ` `using` `System; ` ` ` `class` `GFG { ` ` ` ` ` `static` `int` `n = 3; ` ` ` ` ` `// Function that return dot ` ` ` `// product of two vector array. ` ` ` `static` `int` `dotProduct(` `int` `[] vect_A, ` ` ` `int` `[] vect_B) ` ` ` `{ ` ` ` ` ` `int` `product = 0; ` ` ` ` ` `// Loop for calculate cot product ` ` ` `for` `(` `int` `i = 0; i < n; i++) ` ` ` `product = product + vect_A[i] * vect_B[i]; ` ` ` `return` `product; ` ` ` `} ` ` ` ` ` `// Function to find cross product ` ` ` `// of two vector array. ` ` ` `static` `void` `crossProduct(` `int` `[] vect_A, ` ` ` `int` `[] vect_B, ` `int` `[] cross_P) ` ` ` ` ` `{ ` ` ` ` ` `cross_P[0] = vect_A[1] * vect_B[2] ` ` ` `- vect_A[2] * vect_B[1]; ` ` ` `cross_P[1] = vect_A[2] * vect_B[0] ` ` ` `- vect_A[0] * vect_B[2]; ` ` ` `cross_P[2] = vect_A[0] * vect_B[1] ` ` ` `- vect_A[1] * vect_B[0]; ` ` ` `} ` ` ` ` ` `// Driver code ` ` ` `public` `static` `void` `Main() ` ` ` `{ ` ` ` `int` `[] vect_A = { 3, -5, 4 }; ` ` ` `int` `[] vect_B = { 2, 6, 5 }; ` ` ` `int` `[] cross_P = ` `new` `int` `[n]; ` ` ` ` ` `// dotProduct function call ` ` ` `Console.Write(` `"Dot product:"` `); ` ` ` ` ` `Console.WriteLine( ` ` ` `dotProduct(vect_A, vect_B)); ` ` ` ` ` `// crossProduct function call ` ` ` `Console.Write(` `"Cross product:"` `); ` ` ` `crossProduct(vect_A, vect_B, cross_P); ` ` ` ` ` `// Loop that print ` ` ` `// cross product of two vector array. ` ` ` `for` `(` `int` `i = 0; i < n; i++) ` ` ` `Console.Write(cross_P[i] + ` `" "` `); ` ` ` `} ` `} ` ` ` `// This code is contributed by vt_m. ` |

*chevron_right*

*filter_none*

## PHP

`<?php ` `// PHP implementation for dot ` `// product and cross product ` `// of two vector. ` `$n` `= 3; ` ` ` `// Function that return ` `// dot product of two ` `// vector array. ` `function` `dotproduct(` `$vect_A` `, ` `$vect_B` `) ` `{ ` ` ` `global` `$n` `; ` ` ` `$product` `= 0; ` ` ` ` ` `// Loop for calculate ` ` ` `// cot product ` ` ` `for` `(` `$i` `= 0; ` `$i` `< ` `$n` `; ` `$i` `++) ` ` ` ` ` `$product` `= ` `$product` `+ ` `$vect_A` `[` `$i` `] * ` ` ` `$vect_B` `[` `$i` `]; ` ` ` `return` `$product` `; ` `} ` ` ` `// Function to find ` `// cross product of ` `// two vector array. ` `function` `crossproduct(` `$vect_A` `, ` ` ` `$vect_B` `, ` `$cross_P` `) ` ` ` `{ ` ` ` ` ` `$cross_P` `[0] = ` `$vect_A` `[1] * ` `$vect_B` `[2] - ` ` ` `$vect_A` `[2] * ` `$vect_B` `[1]; ` ` ` `$cross_P` `[1] = ` `$vect_A` `[2] * ` `$vect_B` `[0] - ` ` ` `$vect_A` `[0] * ` `$vect_B` `[2]; ` ` ` `$cross_P` `[2] = ` `$vect_A` `[0] * ` `$vect_B` `[1] - ` ` ` `$vect_A` `[1] * ` `$vect_B` `[0]; ` ` ` `return` `$cross_P` `; ` `} ` ` ` `// Driver Code ` `$vect_A` `= ` `array` `( 3, -5, 4 ); ` `$vect_B` `= ` `array` `( 2, 6, 5 ); ` `$cross_P` `= ` `array_fill` `(0, ` `$n` `, 0); ` ` ` `// dotproduct function call ` `echo` `"Dot product:"` `; ` `echo` `dotproduct(` `$vect_A` `, ` `$vect_B` `); ` ` ` `// crossproduct function call ` `echo` `"\nCross product:"` `; ` `$cross_P` `= crossproduct(` `$vect_A` `, ` ` ` `$vect_B` `, ` ` ` `$cross_P` `); ` ` ` `// Loop that print ` `// cross product of ` `// two vector array. ` `for` `(` `$i` `= 0; ` `$i` `< ` `$n` `; ` `$i` `++) ` ` ` ` ` `echo` `$cross_P` `[` `$i` `] . ` `" "` `; ` ` ` `// This code is contributed by mits ` `?> ` |

*chevron_right*

*filter_none*

**Output:**

Dot product:-4 Cross product:-49 -7 28

This article is contributed by **Dharmendra Kumar**. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.

Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.

## Recommended Posts:

- Program to find the product of ASCII values of characters in a string
- C++ Program to Print Cross or X Pattern
- Sum of product of x and y such that floor(n/x) = y
- Pandigital Product
- Product of first N factorials
- Number of subarrays having product less than K
- Sum of product of r and rth Binomial Coefficient (r * nCr)
- Product of all Subarrays of an Array | Set 2
- Product of factors of number
- Count of sub-arrays with odd product
- Queries for the product of first N factorials
- Digit - Product - Sequence
- Product of all the pairs from the given array
- Find two numbers with sum and product both same as N
- Maximum GCD of N integers with given product
- Product of N with its largest odd digit
- Product of 2 numbers using recursion | Set 2
- Longest sub-array whose product is 0
- Product of all Subarrays of an Array
- Prefix Product Array