Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/162.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我在c+中生成了一个运行时3异常+;代码_C++_Exception - Fatal编程技术网

C++ 我在c+中生成了一个运行时3异常+;代码

C++ 我在c+中生成了一个运行时3异常+;代码,c++,exception,C++,Exception,例外情况是“运行时检查失败#3-变量'VfMin'未经初始化就被使用”。对此我能做些什么?如果有人愿意向我解释,我不知道如何处理异常 #include <fstream> #define NMAX 50 #define INF 10000 using namespace std; int n, x0; double C[NMAX][NMAX]; int pre[NMAX], M[NMAX]; double d[NMAX]; void Init(); void Print();

例外情况是“运行时检查失败#3-变量'VfMin'未经初始化就被使用”。对此我能做些什么?如果有人愿意向我解释,我不知道如何处理异常

#include <fstream>
#define NMAX 50
#define INF 10000

using namespace std;

int n, x0;
double C[NMAX][NMAX];
int pre[NMAX], M[NMAX];
double d[NMAX];

void Init();
void Print();

int main()
{
//This is the algorithm itself
    int i, VfMin, j;
    double dMin;
//Initializing the values
    Init();
    for (j = 1; j < n; j++)
    {
        dMin = INF;
        for (i = 1; i <= n; i++)
        {
            if (!M[i] && dMin > d[i])
            {
                dMin = d[i];
                VfMin = i;
            }
        }
        M[VfMin] = 1; //Generated exception
        for (i = 1; i <= n; i++)
        {
            if (!M[i] && d[i] > dMin + C[VfMin][i])
            {
                pre[i] = VfMin;
                d[i] = dMin + C[VfMin][i];
            }
        }
    }
//Printing the results
    Print();
    return 0;
}

#包括
#定义NMAX 50
#定义INF 10000
使用名称空间std;
int n,x0;
双C[NMAX][NMAX];
int pre[NMAX],M[NMAX];
双d[NMAX];
void Init();
作废打印();
int main()
{
//这就是算法本身
inti,VfMin,j;
双dMin;
//初始化值
Init();
对于(j=1;j
if
块内,将值设置为
VfMin
变量。如果
If
条件从不为
true
,则您的
VfMin
保持未初始化状态。您可以将
VfMin
设置为默认值。这可以是一个例子(假设算法的其余部分编写得很好,那么这段代码应该可以工作):

intmain()
{
//这就是算法本身
inti,VfMin,j;
双dMin;
//初始化值
Init();
对于(j=1;j
还要注意的是,在
C++
n
元素的第一个元素和数组位于索引
0
处,最后一个元素位于索引
n-1

请提供一个,在使用它之前,您可能没有给
VfMin
赋值
int main()
{
    //This is the algorithm itself
    int i, VfMin, j;
    double dMin;
    //Initializing the values
    Init();
    for (j = 1; j < n; j++)
    {
        dMin = INF;
        VfMin = -1; // default value
        for (i = 1; i <= n; i++)
        {
            if (!M[i] && dMin > d[i])
            {
                dMin = d[i];
                VfMin = i;
            }
        }

        if (VfMin != -1)
        {
            M[VfMin] = 1;

            for (i = 1; i <= n; i++)
            {
                if (!M[i] && d[i] > dMin + C[VfMin][i])
                {
                    pre[i] = VfMin;
                    d[i] = dMin + C[VfMin][i];
                }
            }
        }
    }
    //Printing the results
    Print();
    return 0;
}