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

10-13 00:01