当我尝试构建并运行它时,这个代码有问题,它一直有效,直到它必须写" ris"(返回我的函数)并且不再发生任何事情。所以也许我的功能有问题,但似乎一切都没问题。
#include <iostream>
using namespace std;
#define MAX_SZ 50
double valore_medio_esp (int n, double d[][MAX_SZ] )
{
int j,i;
double somma_num = 0;
double somma_den = 0;
double valore_medio;
for (j=0;j<n;j++){
somma_num = somma_num +(d[0][j])*(d[1][j]);
}
for(i=0; i<n; i++) {
somma_den=somma_den+d[1][i];
}
valore_medio = (somma_num) / (somma_den);
return valore_medio;
}
int main(){
int m;
int k;
double ris=0;
cout <<"inserisci il numero di valori rivelati durante l'esperimento :";
cin>>m;
double a[1][MAX_SZ];
cout<<"inserisci i dati presi: ";
for (k=0;k<m;k++){
cin>> a[0][k];
}
cout<<"inserisci le rispettive frequenze: ";
for (k=0;k<m;k++){
cin>> a[1][k];
}
cout<<"il valore medio dei dati misurati e': ";
ris= valore_medio_esp(m,a);
cout<< ris;
return 0;
}
答案 0 :(得分:2)
您的数组a
不够大 - 您正在访问a[0][]
和a[1][]
,因此第一个维度需要为2.更改:
double a[1][MAX_SZ];
为:
double a[2][MAX_SZ];