C program to find maximum scalar product of two vectors
Maximum Scalar Product in C
Here, in this page we will discuss about the maximum scalar product in C. There we have two arrays array 1 and array 2 so here we need to find dot products of two arrays. Dot product is also known as the scalar product of two vectors.
Example
Input :arr1[4] = [10, 30, 40, 20]            arr2[4] = [2, 4, 5, 1]
Output : 370
Explanation : 10*1 + 20*2 + 30*4 + 40*5 = 370
Algorithm :
- Sort the first array in ascending order,
- Sort the second array in ascending order.
- Declare a variable say product = 0.
- Run a loop from index 0 to n
- Set product += (arrr1[i]*arr2[i])
- After complete iteration print product.
Code in C
Run
#include <stdio.h>
int main(){
int arr1[] = {1, 2, 6, 3, 7};
int arr2[] = {10, 7, 45, 3, 7};
int n = sizeof(arr1)/sizeof(arr1[0]);
//Sort arr1 in ascending order
for(int i=0; i<n; i++){
for(int j=i+1; j<n; j++){
if(arr1[i]>arr1[j]){
int temp = arr1[i];
arr1[i] = arr1[j];
arr1[j] = temp;
}
}
}
//Sort arr2 in ascending order
for(int i=0; i<n; i++){
for(int j=i+1; j<n; j++){ if(arr2[i]>arr2[j]){
int temp = arr2[i];
arr2[i] = arr2[j];
arr2[j] = temp;
}
}
}
int product = 0;
for(int i=0; i<n; i++)
product += arr1[i]*arr2[i];
printf("%d ", product);
}Output
413
Prime Course Trailer
Related Banners
Get PrepInsta Prime & get Access to all 200+ courses offered by PrepInsta in One Subscription

Login/Signup to comment