数据计量矩阵

时间:2015-08-20 16:04:01

标签: c++ arrays matrix

当我尝试构建并运行它时,这个代码有问题,它一直有效,直到它必须写" 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;
}

1 个答案:

答案 0 :(得分:2)

您的数组a不够大 - 您正在访问a[0][]a[1][],因此第一个维度需要为2.更改:

double a[1][MAX_SZ];

为:

double a[2][MAX_SZ];