在C中计算阶乘时得到错误的结果=
显然,这是一个[家庭任务],也是我要问的一个完全陌生的问题。我试图通过多次修改代码来自己解决这个问题,但仍然从阶乘计算中得到错误的结果。 该程序的思想是打印1到10的整数的阶乘表。为了完成这个技巧,我的想法是使用嵌套的for和while语句,如下代码所示:在C中计算阶乘时得到错误的结果=,c,factorial,C,Factorial,显然,这是一个[家庭任务],也是我要问的一个完全陌生的问题。我试图通过多次修改代码来自己解决这个问题,但仍然从阶乘计算中得到错误的结果。 该程序的思想是打印1到10的整数的阶乘表。为了完成这个技巧,我的想法是使用嵌套的for和while语句,如下代码所示: #include <stdio.h> int main (void) { int n, factorial, u; u = n; printf ("Table to calculate factori
#include <stdio.h>
int main (void)
{
int n, factorial, u;
u = n;
printf ("Table to calculate factorials from 1 to 10\n");
printf ("n Factorial to n\n");
for (n = 1; n <= 10; n= n+1)
{
while (u <= n)
factorial = n * u;
u = u - 1;
printf ("%i %i\n", n, factorial);
}
return 0;
}
#包括
内部主(空)
{
整数n,阶乘,u;
u=n;
printf(“计算从1到10的因子的表”);
printf(“n阶乘到n\n”);
对于(n=1;n您实际上遇到了几个问题,以至于很难判断您的初衷。u
是单位化的,while循环缺少大括号,并且您将错误的值分配给了factorial
这里有一种方法可以解决问题
for (n = 1; n <= 10; ++n)
{
factorial = 1;
for (u = 1; u<=n; ++u)
{
factorial *= u;
}
printf ("%i %i\n", n, factorial);
}
for(n=1;n如果您想使用您的原始想法:
#include <stdio.h>
int main (void)
{
int n, factorial, u;
printf ("Table to calculate factorials from 1 to 10\n");
printf ("n Factorial to n\n");
for (n = 1; n <= 10; n= n+1)
{
factorial = u = 1;
while (u <= n)
{
factorial *= u;
u = u - 1;
}
printf ("%i %i\n", n, factorial);
}
return 0;
}
#包括
内部主(空)
{
整数n,阶乘,u;
printf(“计算从1到10的因子的表”);
printf(“n阶乘到n\n”);
对于(n=1;n谢谢!它现在可以工作了。你是对的-我错过了大括号,在初始化它之前开始使用u变量。现在知道了。谢谢!如果你在循环之前将factorial设置为1,然后在循环内部乘以n,你根本不需要第二个循环。简单多了。@Mats很好的一点。我只是想做类似于它的事情已使用现有变量编写。谢谢!我在原始代码中使用了计算阶乘的算法,结果(如上所述)遗漏了大括号。感谢您的帮助!