gpt4 book ai didi

c++文件不会运行但会编译

转载 作者:行者123 更新时间:2023-11-30 03:34:23 25 4
gpt4 key购买 nike

下面的文件可以编译但不能运行,有什么建议吗?

光标会闪烁几次,然后停止。不知道是什么问题?

对离开平板 block 的粒子运行 1e7 个样本。这个想法是取在 x 方向上离开平板的平均粒子数。

#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <stdint.h>
#include <iostream>
#include <cstdlib>

int main(int argc, char **argv)
{

int i , J;
int numhistories = 1E7;
int num_batch = 1E3;
char * num_abs;

double N1 = 0.25;
double Smallsigma1 = 2.0;
double N2 = 0.75;
double Smallsigma2 = 0.5;
double Tsigma = (N1 * Smallsigma1) + (N2 * Smallsigma2);
double xmin = 0.0; // Slab geometry
double xmax = 5.0; // Slab geometry


double x, c , phi;
double count = 0, total_num_abs = 0;
num_abs = (char*) malloc (J+1);
if (num_abs==NULL) exit (1);

for (J = 0; J < num_batch; J++)
{
count = 0;

for (i = 1 ; i < numhistories ; i++)
{
// randomly intialize the x location of a neutron
x = xmax * (float)rand() / (float)(RAND_MAX) ;
// first interaction
c = 2 * (float)rand() - 1 ;
phi = (float)rand() / (float)RAND_MAX;
x += -log(phi) * c / Tsigma;
while ((x < xmax) && (x > xmin))
{
phi = (float)rand() /(float)RAND_MAX;
if (phi < 1 / Tsigma)
{
count += 1 ;
break;
}
c = 2 * (float)rand() - 1 ;
phi = (float)rand() /(float)RAND_MAX;
x += (-log(phi)) * c / Tsigma;
}
}
num_abs[J] = count;
total_num_abs += num_abs[J];
}
double mean = (double)total_num_abs / (double)(numhistories * num_batch);
count = 0;
for (J = 0; J < num_batch; J++)
{
count += (num_abs[J] - numhistories * mean) * (num_abs[J] - numhistories *mean);
}
double variance = (double)count / (double)(num_batch * num_batch);

printf("mean = %f, variance = %f\n", mean , variance);
return 0;
}

最佳答案

如果它在程序快结束时没有打印出来,而且它似乎没有崩溃。因此它之前退出。如果你连接一个调试器并单步执行它,我怀疑它最终会在这里退出:

num_abs =  (char*) malloc (J+1);
if (num_abs==NULL) exit (1);

J 似乎未初始化,因此可以是任何值。正如评论中所建议的那样,请将您的警告级别提高到 -Wall 或类似的级别。警告可以帮助您防止此类问题。

如果由于某种原因没有可用的调试器,您可以在此处多打印几张以缩小问题的范围。

祝你好运!

关于c++文件不会运行但会编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42099614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com