【问题标题】:Matrix of data measurents数据测量矩阵
【发布时间】:2015-08-20 16:04:00
【问题描述】:

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

【问题讨论】:

  • 我猜,你应该改变一些东西让它工作。 :-) stackoverflow.com/help/mcve
  • 为了您自己和您的读者,您需要正确地格式化您的代码。格式错误的代码更难阅读、理解和调试。

标签: c++ arrays matrix


【解决方案1】:

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

double a[1][MAX_SZ];

到:

double a[2][MAX_SZ];

【讨论】:

    猜你喜欢
    • 2017-08-29
    • 1970-01-01
    • 1970-01-01
    • 2018-09-14
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    • 1970-01-01
    • 2020-11-14
    相关资源
    最近更新 更多