c - 在 C 中使用多个 For 循环

标签 c loops

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

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

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

等等

编辑:输出必须如下所示:

Trials: 10   Heads: 30% Tails 70%
Trials: 100 ….

等等。忘记包含此内容,抱歉!

显然,这写起来非常乏味,而且我不想调用我的 coinToss 函数六次;但我不确定如何模拟每次试验下的抛硬币(10...100 万次)。

最佳答案

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

1) 使用外循环生成试验次数。如果试验次数遵循容易生成的模式(您的问题就是这种情况),则效果很好。

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

2) 如果模式不易生成,请使用具有任意值的表格。

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
    }

3) 将循环放入函数中并多次调用该函数。

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);   
}

您还可以将 3) 与 1) 或 2) 结合起来。例如,将 3) 与 1) 组合起来如下所示

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);
}

关于c - 在 C 中使用多个 For 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52543725/

相关文章:

c++ - 如何保持循环直到输入非整数

c - 通过标准输入发送 SIGINT

使用循环舍入值的Javascript函数..回调?

C Primer Plus 第 6 章练习 4 检查

c - 如何在 C 中使用 switch 语句保留被操作位的值

javascript - 如何循环遍历 React 组件中数组内对象的属性?

loops - 第一列的数据丢失

c - 显示正确的输出后,正在打印不需要的输出

解析字符缓冲区的代码

c - 如何在 C 语言中组织一个项目中的多个主文件?