C++ 矩阵求逆,该如何处理

C++ 矩阵求逆
各位高手,本人有个亟待解决的问题,就是矩阵求逆中如何实现求矩阵的行列式与伴随矩阵中的元素,其中矩阵为自行输入,恳请指点,感激不尽!

------解决方案--------------------
我这里没有伴随矩阵的计算啊,就这两个
行列式计算
C/C++ code

#include <algorithm>
#include <iostream>
#include <fstream>
#include <sstream>
#include <vector>
#include <cmath>
using namespace std;

int factorial(int step)//阶乘
{
    int result = 1;
    for(int i = 2; i < step+1; i++)
        result *= i;
    return result;
}


bool reversekeyindex(int *permutate,int step)//逆序数
{
    int num = 0;
    for(int i = 0; i < step; i++)
    {
        for(int j = 0; j < i; j++)
            if(permutate[i] < permutate[j])
                num++;
    }

    if(num%2)
        return false;
    else
        return true;
}

int getdata(vector<double> &vec,_TCHAR* filename)//获取矩阵
{
  ifstream ifs(filename);
  int count;
  double temp;
  while(!ifs.eof())
  {
  ifs>>temp;
  vec.push_back(temp);
  }
  ifs.close();
  return count = sqrt(static_cast<double>(vec.size()));
}

int _tmain(int argc, _TCHAR* argv[])
{
    vector<double> vec;
    int step = getdata(vec, argv[1]);
    int *permutate = new int[step];
    for(int i = 0; i < step; i++)
    permutate[i] = i;

    int result = 0;
    for(int i = 0; i < factorial(step); i++)
    {
        int temp = 1;
        for(int j =0 ; j < step; j++)
        {
            temp *=  vec[j*step+permutate[j]];
        }
        if(!reversekeyindex(permutate, step))
            temp = -temp;
        result += temp; 
        prev_permutation(permutate, permutate+step);
    }
    cout<<result<<endl;
    delete[] permutate;
    return 0;
}