【发布时间】:2015-06-26 23:38:15
【问题描述】:
我正在使用以下 C++ 代码输入 X 值,该值用于打印出变量 CDF。预计此 C++ 代码将提供与我们从 excel 中的 NORMDIST 函数获得的非常相似的值。但是,我在调试器中出现以下错误,而没有在可执行文件中获得任何输出。请问有什么机构可以帮忙吗?
#include<iostream>
#include<cmath>
using namespace std;
const double pi = 4.0*atan(1.0);
int main()
{
const double a1 = 0.319381530, a2 = -0.356563782, a3 = 1.781477937,
a4 = -1.821255978, a5 = 1.330274429;
double X = 0, x = 0; double k = 0;
double N, CDF, n;
cout << "Enter the value of the random variable X" << endl;
cin >> X;
x = fabs(X);
k = 1 / (1 + 0.2316419*x);
n = (1 / sqrt(2 * pi))*exp(-0.5*x*x);
N = 1 - n*(a1*k + a2*k*k + a3*pow(k, 3) + a4*pow(k, 4) + a5*pow(k, 5));
CDF = N;
if (X < 0)
CDF = 1 - N;
cin.clear();
cout << CDF;
cin.get();
return 0;
}
我 CDF1.exe 用于输出,例如 X= 0.7693 作为输入,我期待 0.7791 但我在 CDF1.exe 中看不到任何输出,我只是在调试器中看到下面。谁能帮忙解决一下问题?
'CDF1.exe' (Win32): 加载'C:\Users\kdatta\Documents\CQF\C++\CDF1 Debug\CDF1.exe'。已加载符号。 “CDF1.exe”(Win32):加载“C:\Windows\SysWOW64\ntdll.dll”。无法找到或打开 PDB 文件。 “CDF1.exe”(Win32):已加载“C:\Windows\SysWOW64\kernel32.dll”。无法找到或打开 PDB 文件。 “CDF1.exe”(Win32):已加载“C:\Windows\SysWOW64\KernelBase.dll”。无法找到或打开 PDB 文件。 “CDF1.exe”(Win32):已加载“C:\Windows\SysWOW64\msvcp120d.dll”。无法找到或打开 PDB 文件。 “CDF1.exe”(Win32):已加载“C:\Windows\SysWOW64\msvcr120d.dll”。无法找到或打开 PDB 文件。 线程 0x4fc0 已退出,代码为 -1073741749 (0xc000004b)。 程序“[11216] CDF1.exe”已退出,代码为 -1073741510 (0xc000013a)。【问题讨论】:
-
谷歌搜索退出代码时,我发现:当按下 Control+C 键时进程退出时返回退出代码。值:0xC000013A - 听起来合理吗?您是否尝试过单步执行代码?
-
不。程序提示输入 X 的值。一旦我输入 X 的值,它似乎就退出了。不知道为什么?
-
就像我说的...尝试单步执行代码。然后你就会知道它走了多远。
标签: debugging visual-c++