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.

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the **DSA Self Paced Course** at a student-friendly price and become industry ready.

## Recommended Posts:

- Find area of triangle if two vectors of two adjacent sides are given
- Find area of parallelogram if vectors of two adjacent sides are given
- C++ Program to Print Cross or X Pattern
- Check if the given vectors are at equilibrium or not
- Minimum distance from a point to the line segment using Vectors
- Priority Queue of Vectors in C++ STL with Examples
- Set of Vectors in C++ STL with Examples
- Implementation of file allocation methods using vectors
- Left rotation of an array using vectors in C++
- Number of jumps for a thief to cross walls
- Find the minimum cost to cross the River
- Count unordered pairs (i,j) such that product of a[i] and a[j] is power of two
- Find two numbers with sum and product both same as N
- Smallest pair of indices with product of subarray co-prime with product of the subarray on the left or right
- Program to find if two numbers and their AM and HM are present in an array using STL
- Add two integers of different base and represent sum in smaller base of the two
- Largest palindrome which is product of two n-digit numbers
- Trailing number of 0s in product of two factorials
- Number of digits in the product of two numbers
- Ways to express a number as product of two different factors