Così è corretto, vedi se capisci perché è differente dal tuo. (Oltre al fatto che come avevo detto incrementavi 2 volte i)
codice:
#include <iostream>
#define LEN 20
using namespace std;
int scalare(int A[LEN], int B[LEN], int len);
int main () {
int A[LEN], B[LEN];
int i,n,sum;
cout<<"Inserisci il numero degli elementi dei vettori: ";
cin>>n;
for ( i=0; i<n; i++){
cout<<"A["<<i+1<<"]: ";
cin>>A[i];
}
for ( i=0; i<n; i++){
cout<<"B["<<i+1<<"]: ";
cin>>B[i];
}
sum = scalare(A,B,n);
cout<<"il prodotto scalare e'"<<sum<<endl;
//Io ho tolto la chiamata a system
//per utilizzarla comunque dovresti includere cstdlib
return 0;
}
int scalare (int A[LEN], int B[LEN], int len){
int sum = 0;
for (int i=0; i<len; i++){
sum+=A[i]*B[i];
}
return sum;
}