ragazzi ok il programma funziona ora l'ho fatto con le funzioni ma il programma parte ma ad un certo punto s'interrompe ora vi posto il tutto con la funzione spero in un vostro aiuto!
codice:
#include <iostream>
#define LEN 20
using namespace std;
int scalare(int A[LEN],int B[LEN],int sum);
int main () {
int A[LEN], B[LEN];
int i,n,sum;
cout<<"inserisci il numero degli elementi dell'array A"<<endl;
cin>>n;
for ( i=0; i<n; i++){
cout<<"inserisci il ["<<i+1<<"] valore dell'array"<<endl;
cin>>A[i];
}
cout<<"inserisci il numero degli elementi dell'array B"<<endl;
cin>>n;
for ( i=0; i<n; i++){
cout<<"inserisci il ["<<i+1<<"] valore dell'array"<<endl;
cin>>B[i];
}
scalare (A,B,sum);
cout<<"il prodotto scalare e'"<<sum<<""<<endl;
system ("pause");
return 0;
}
int scalare (int A[LEN],int B[LEN],int sum){
sum=0;
int n;
for (int i=0; i<n; i++){
sum+=A[i]*B[i];
i=i+1;
}
return sum;
}
Non hai chiaro il concetto di scope. Devi andartelo a studiare.
Ci sono alcuni errori concettuali gravi: il valore di sum non cambierà nel main; nella funzione scalare dichiari n, questa non ha nessun rapporto con n nel main e assumerà un valore random.
"Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares
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; }
"Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares