首页 > 解决方案 > 如何在 C 中使用此代码进入 while 循环

问题描述

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

标签: cwhile-loop

解决方案


这里

while (nb > '0')

应该是这样的:

while (nb > 0)

'0'并且0非常不同。'0'是一个整数文字,就像0,但它表示显示为 0 的字符的值。通常(在ASCII中)是48. 所以while (nb > '0')相当于while (nb > 48),这就是它不起作用的原因。

此外,循环不会终止。不要忘记nb在每次迭代中减少。


推荐阅读