2015-08-20 35 views
-5

這段代碼有問題,因爲當我嘗試構建並運行它時,它會一直工作,直到它必須寫入「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

我想,你應該改變一些事情來讓它有用。 :-) http://stackoverflow.com/help/mcve –

+1

你需要正確地格式化你的代碼,爲了你自己和爲了你的讀者。格式不正確的代碼難以閱讀,理解和調試。 –

回答

2

你的陣列a不夠大 - 你所訪問a[0][]a[1][],所以第一個維度必須2.更改:

​​

到:

double a[2][MAX_SZ];