如何在C中使用此代码进入while循环

Jin*_*ark 1 c while-loop

我刚开始学习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)

Bla*_*aze 6

这里

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在每次迭代中减少.