我刚刚开始学习C语言,并试图创建自己的函数。
但是,我不明白为什么我的while循环不在这段代码中运行我尝试了很多方法,比如==!=,…等等,但我不明白为什么它不能正常运行。
我误解了阶乘是什么:(我和你们建议的所有人一起修改了代码谢谢大家
#include <stdio.h>
int my_iterative_factorial(int nb)
{
int i;
int store;
i = 1;
if(nb == '0')
return(0);
while (nb > 0)
{
i = i * nb;
nb--;
}
return(i);
}
int main(void)
{
int nb;
nb = 5;
printf("%d\n",my_iterative_factorial(nb));
return(0);
}
最佳答案
这是这里
while (nb > '0')
应该是这样的:
while (nb > 0)
'0'
和0
非常不同。'0'
是一个整数文本,与0
类似,但它表示显示为0的字符的值通常(在ASCII中)的值为48
所以while (nb > '0')
等同于while (nb > 48)
,这就是它不起作用的原因。此外,循环不会终止不要忘记在每次迭代中减少
nb
。关于c - 如何在C中使用此代码进入while循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53560030/