How to calculate the dot product of two arrays in C

1 Answer

0 votes
#include <stdio.h>

// dot product = the sum of the products of the 
//               corresponding entries of the two sequences of numbers

int calculate_dot_product(int arr1[], int arr2[], int size) {
    int product = 0;
 
    for (int i = 0; i < size; i++)
        product += arr1[i] * arr2[i];
 
    return product;
}
 
int main() {
    int arr1[] = { 1, 4, 8, 9, 6 };
    int arr2[] = { 0, 7, 1, 3, 40 };
    int size = sizeof arr1 / sizeof arr1[0];
    
    // 1 * 0 + 4 * 7 + 8 * 1 + 9 * 3 + 6 * 40 = 0 + 28 + 8 + 27 + 240 = 303
 
    printf("Dot product = %d", calculate_dot_product(arr1, arr2, size));
 
    return 0;
}
 
 
 
 
/*
run:
 
Dot product = 303
 
*/

 



answered Feb 16, 2023 by avibootz
edited Jun 18, 2024 by avibootz
...