Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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中使用多个For循环_C_Loops - Fatal编程技术网

在C中使用多个For循环

在C中使用多个For循环,c,loops,C,Loops,我的作业是一个掷硬币模拟,必须进行10、100、1000、100000和100万次试验。换句话说,程序的一次执行包括所有六次试验。实际抛硬币的代码必须在另一个函数中完成。我想知道是否可以编写具有多个非嵌套循环的程序,例如: for(unsigned int counter = 1; counter <= 10; counter++) for(unsigned int counter = 1; counter <= 100; counter++) 等等。忘了包括这个,对不起 显然,

我的作业是一个掷硬币模拟,必须进行10、100、1000、100000和100万次试验。换句话说,程序的一次执行包括所有六次试验。实际抛硬币的代码必须在另一个函数中完成。我想知道是否可以编写具有多个非嵌套循环的程序,例如:

for(unsigned int counter = 1; counter <= 10; counter++)

for(unsigned int counter = 1; counter <= 100; counter++)
等等。忘了包括这个,对不起


显然,这是非常乏味的编写,我不想调用我的cointost函数六次;但我不知道如何在每次试验(10…100万)下模拟抛硬币。

有很多方法可以做到这一点。这里有一些

1) 使用外部循环生成试验次数。如果试验的数量遵循一个容易生成的模式,那么效果会很好,这就是你的问题

for (unsigned int trials = 10; trials <= 1000000; trials *= 10)
    for(unsigned int counter = 1; counter <= trials; counter++)
    {
        // do stuff
    }

for(unsigned int trials=10;trials当然,您可以有任意多个循环。如果您认为六个调用太多(不是),我想您可以接着调用它们。调用投币循环的外部循环如下:
for(unsigned int loop=10;loop这仅仅是五次试验。o你可以有一个循环,达到一百万,在这个循环中,你可以有if语句<10 if<100等等on@ReticulatedSpline你的循环是我最初拥有的。我会回去编辑我的帖子,但我必须打印每个试验的结果,我认为这样的循环会不行。我忘了包括这个part@ReticulatedSpline请考虑将你的评论改写为一个答案。对建议3的改进是在主()/<代码>中调用一个循环,该代码调用<代码>脚注()/代码>而不是6个显式调用。这可以用从1或2的模式来完成。@代码学徒,这就是我的意思。“可以与1和2组合”,但我承认这有点含糊不清。我编辑了答案。谢谢!我在第一次阅读时错过了那个插入语。编辑肯定会让它更清晰和明显。我尝试了#3,效果很好!我不想调用我的函数六次,但你的示例非常清晰,我想,“为什么不呢?”谢谢!
unsigned int trials[] = { 15, 97, 1003, 10100, 100444, 999999, 0 };
for (int i = 0; trials[i] > 0; i++)
    for(unsigned int counter = 1; counter <= trials[i]; counter++)
    {
        // do stuff
    }
void foo(unsigned int trials)
{
    for(unsigned int counter = 1; counter <= trials; counter++)
    {
        // do stuff
    }
}

int main(void)
{
    foo(10);
    foo(100);
    foo(1000);
    foo(10000);
    foo(100000);
    foo(1000000);   
}
void foo(unsigned int trials)
{
    for(unsigned int counter = 1; counter <= trials; counter++)
    {
        // do stuff
    }
}

int main(void)
{
    for (unsigned int trials = 10; trials <= 1000000; trials *= 10)
        foo(trials);
}