显然,这是一个[hometask]和一个我要问的全新问题。我试图通过多次更改代码来自行解决这个问题,但仍然会从因子计算得到错误的结果。 该程序的想法是打印1到10的整数的阶乘表。为了完成这个技巧,我的想法是使用嵌套的for和while语句,如下面的代码所示:
#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;
}
但是,我在控制台中得到了错误的结果。猜猜我搞砸了算法来计算阶乘或程序逻辑。我尝试更改代码但仍然卡住了。任何帮助,将不胜感激。谢谢,新年快乐!
答案 0 :(得分:1)
你实际上遇到了几个问题,至少很难说出你的意图是什么。 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);
}
答案 1 :(得分:0)
如果你想使用你最初的想法:
#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;
}