简体   繁体   English

函数错误。 C ++

[英]ERROR problem with a function. C++

In function Determininant i keep getting an error.... 在函数行列式中,我不断收到错误...。

#include <iostream>
#include <fstream>
#include <cmath>

using namespace std;

const int maxsize = 10;

ifstream fin;
ofstream fout;

void transpose (double omatrix[][maxsize],double tmatrix [][maxsize], int array_size)
{
    for(int i = 0; i < array_size; i++)
    {
        for(int j = 0; j < array_size; j++)
        {
            tmatrix[j][i] = omatrix[i][j];
        }


    }
}

void sub (double omatrix[][maxsize], double smatrix[][maxsize], int array_size, int i, int j)
{
    int counter1 = 0, counter2 = 0;

    for (int a = 0; a < array_size; a++)
    {
        if (a != i)
        {
            for (int b = 0; b < array_size; b++)
            {
                if (b != j)
                {
                    smatrix[counter1][counter2] = omatrix[a][b];
                    counter2++;
                }
            }
            counter1++;
        }
    }
}

double Determininant(double original_matrix[][maxsize], int array_size)
{
    if(array_size == 1)
        return original_matrix[0][0];
    else if(array_size == 2)
        return original_matrix[0][0] * original_matrix[1][1] - original_matrix[0][1] * original_matrix[1][0];
    double d = 0.0;
    double temp[maxsize][maxsize];
    for(int i = 0; i < array_size; i++)
    {
        sub (original_matrix,temp,array_size, 0, i);
        d += pow(-1.0,i) * original_matrix[0][i] * d(temp, array_size - 1);
    }
    return d;
}

void print (const double m[][maxsize], int array_size)
{
    for(int i = 0; i < array_size; i++)
            {
                for(int j = 0; j < array_size; j++)
                {
                    fout << m[i][j] << "  ";
                }
                fout << "\n";
            }
            fout << "\n";
}

The error is error: 'd' cannot be used as a function. 错误是错误:'d'不能用作函数。 Any ideas on whats wrong? 有什么问题的想法吗?

Exactly what the error message says: d is a double and you can't call it as a function. 错误消息的确切含义是: ddouble ,不能将其作为函数调用。 Perhaps you meant Determinant(temp, array_size - 1) ? 也许您是说Determinant(temp, array_size - 1)

It's the end of this line: 这行的结尾:

d += pow(-1.0,i) * original_matrix[0][i] * d(temp, array_size - 1);

As casablanca said, do you mean this?: 正如卡萨布兰卡所说,你是说这个意思吗?

d += pow(-1.0,i) * original_matrix[0][i] * Determinant(temp, array_size - 1);
d += pow(-1.0,i) * original_matrix[0][i] * d(temp, array_size - 1);

子句d(temp, array_size - 1)告诉C ++调用函数d。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM