gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 18:27:50 24 4
gpt4 key购买 nike

我的作业是抛硬币模拟,必须运行 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/

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