我的Vandermonde矩阵程序出了什么问题?

时间:2016-12-14 10:20:15

标签: c++ matrix error-handling

Screenshot of the error code 我试图弄清楚为什么我的程序不能正常工作。这是一个应该创建Vandermonde矩阵的程序,但它得到的是最后的数字错误,我真的不明白为什么会发生这种情况。我手动完成了它(你知道,检查计算机正在做什么并将其写在纸上)我真的不知道它会在哪里发生。

提前谢谢!

#include <iostream>
#include <vector>
#include <math.h>


int main ()
{
    int n, m;
    std::cin >> m;
    std::cin >> n;

    double x[m];

    for (int l = 0; l < m; l++) //fill in x-es
    {
        double f;
        std::cin >> f;
        x[l] = f;
    }


    std::vector<std::vector<double> > mat ( n , std::vector<double>( m, 0));

    for ( int i = 0; i < m; i++) //creat matrix
        for (int j = 0; j < n; j++)
            {
                mat [i][j] = pow(x[i] , j);
            }

    for (int i = 0 ; i < m ; ++i) 
    {
        for (int j = 0 ; j < n ; ++j)
            std::cout << mat [ i ] [ j ] << " " ;

                std::cout << "\n" ;
    }

    return 0;
}

1 个答案:

答案 0 :(得分:1)

std::vector<std::vector<double> > mat ( n , std::vector<double>( m, 0));替换为 std::vector<std::vector<double> > mat ( m , std::vector<double>( n, 0));

它会正常工作