gpt4 book ai didi

c - 想知道为什么这段代码会导致无限循环

转载 作者:太空宇宙 更新时间:2023-11-04 07:53:21 25 4
gpt4 key购买 nike

我一直在尝试获取数字的阶乘 (f.ex: 4!= 24 [4 (3) (2) (1) = 24])。

然后我写了下面的代码:

#include <stdio.h>

void TestAcomulador(int a, int factorizado, int *resultado);

int main(void) {
int a, resultado, factorizado, sacaroperacion;
printf("Introduzca un numero: ");
scanf("%d", &a);
TestAcomulador(a, factorizado, &resultado);
printf("%d", resultado);
}

void TestAcomulador(int a, int numprincipal, int *factorizado) {
numprincipal = --a;
do {
*factorizado = numprincipal * a;
printf("The loop is here\n"); //LOOP IN THIS LINE
} while (numprincipal > 0);
}

这是怎么回事,我做错了什么?帮助将不胜感激,以避免在未来遇到这个问题,

提前致谢。

最佳答案

您在任何时候都不会递减 numprincipal,因此它总是大于 0(假设您 a>=2)。

所以 while 循环的条件总是为真。

关于c - 想知道为什么这段代码会导致无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52370770/

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