我刚开始学习C语言,并尝试创建自己的函数.但是,我不明白为什么我的while循环不在此代码中运行.我尝试了很多方法,比如==,!=,<,> ......等,但我不明白为什么它运行不正常.
PS.我误解了什么是因子:(我改变了你所有人的建议代码.谢谢大家
#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);
}
Run Code Online (Sandbox Code Playgroud)
这里
while (nb > '0')
Run Code Online (Sandbox Code Playgroud)
应该是这样的:
while (nb > 0)
Run Code Online (Sandbox Code Playgroud)
'0'而且0非常不同.'0'是一个整数文字,就像0,但它表示显示为0的字符的值.通常(在ASCII中),它的值是48.所以while (nb > '0')相当于while (nb > 48),这就是为什么它不起作用.
此外,循环不会终止.不要忘记nb在每次迭代中减少.