首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >int主argc参数数

int主argc参数数
EN

Stack Overflow用户
提问于 2014-11-30 16:21:12
回答 1查看 239关注 0票数 0

为了玩蒙特卡罗模拟,我在和C++做斗争。我是个数学家,这是我第一次和C++在一起。

代码语言:javascript
复制
/* The main routine
 */

int main(int argc,char *argv[])
{
    struct timeval tv;
    struct timezone tz;
    double res,err;
    int loops,n,i;

    /* require correct number of arguments
     */
    if (argc != 3)
    {
        fprintf(stderr,usage);
        exit(0);
    }

    n     = atoi(argv[1]);    /* first int */
    loops = atoi(argv[2]);    /* 2nd int */

    /* seed the random number using system time
     * tv.tv_sec contains time in seconds, tv.tv_usec in microseconds
     */
if((r = gsl_rng_alloc(gsl_rng_mt19937)) == NULL) {
    printf("ERROR: Could not create random number generator\n");
    exit(1);
  }
    gettimeofday( &tv, &tz );
    gsl_rng_set(r, tv.tv_sec + tv.tv_usec );


    for (i=0; i<100000; i++) gsl_rng_get (r);

    for (i=0; i<loops; i++)
    {
        res = mcint(n,&err);
        printf("%d  %g  %g\n",i,res,err);
    }

    return(1);
}

其中mcint是我的蒙特卡罗函数。

问题是argc没有正确的参数数(3)。我该如何解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-30 16:45:09

argc是从命令行调用程序时的参数数。

你的节目需要三个论点。第一个始终是可执行程序的名称。因此,它需要额外的参数,您必须提供:第一个是第一个intereger (n),第二个是您希望它执行的迭代次数。

解决问题的最简单方法是编译程序并从命令行调用它:

代码语言:javascript
复制
  MYMONTECARLO 100 1000 

如果您在IDE下,请在手册中查看如何提供这样的运行时参数。例如,对于代码::块,请查看this question

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27215343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档