gpt4 book ai didi

c - 计算三个嵌套 for 循环的总体进度 (%)

转载 作者:行者123 更新时间:2023-12-01 23:48:47 24 4
gpt4 key购买 nike

我有三个嵌套的 for 循环,每个循环显然都有一个限制。要计算三个 for 循环中任何一个的进度,我需要做的就是将当前迭代除以循环将进行的迭代总数。但是,鉴于存在三种不同的 for 循环,我如何计算完成的总体百分比?

int iLimit = 10, jLimit = 24, kLimit = 37;

for (int i = 0; i < iLimit; i++) {
for (int j = 0; j < jLimit; j++) {
for (int k = 0; k < kLimit; k++) {
printf("Percentage Complete = %d", percentage);
}
}
}

我尝试了以下代码,但它在每个循环完成后重置,达到大于 100 的百分比。
float percentage = ((i + 1) / (float)iLimit) * ((j + 1) / (float)jLimit) * ((k + 1) / (float)kLimit) * 100;

最佳答案

您可以轻松计算“每个内部循环的百分比变化”

const double percentChange = 1.0 / iLimit / jLimit / kLimit;

注意,这在数学上等同于 1/(iLimit*jLimit*kLimit) ,但是如果 iLimitjLimitkLimit 足够大,则会出现溢出和意外行为。使用 1.0/... 方法仍有可能出现下溢,但可能性要小得多。
int iLimit = 10, jLimit = 24, kLimit = 37;

const double percentChange = 1.0 / iLimit / jLimit / kLimit;
double percentage = 0;

for (int i = 0; i < iLimit; i++) {
for (int j = 0; j < jLimit; j++) {
for (int k = 0; k < kLimit; k++) {
percentage += percentChange;
printf("Percentage Complete = %d\n", (int)(percentage * 100));
}
}
}

关于c - 计算三个嵌套 for 循环的总体进度 (%),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27677960/

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