[英]Calculating factorial multiple times in a loop only works the first time through
这个程序计算n!
仅在第一次通过循环时给出正确的值。 在随后的每次循环中,它都会给出不正确的值。
我究竟做错了什么?
#include <stdio.h>
int main()
{
int n,result=1;
while(1){
do{
printf("\nInput n:");
scanf("%d",&n);
}while(n<1);
for (int i=1;i<=n;i++)
{
result*=i;
}
for(int j=1;j<=n;j++)
{
printf("%d",j);
if(j!=n)
{
printf("x");
}
}
printf("=%d",result);
}
}
每次通过外循环都没有得到相同的result
值的原因是因为在启动循环时没有重置它的值。
第一次循环result
从值 1 开始。下一次,它从完成循环的最后一次迭代时的值开始,因为您没有费心去改变它。
您想在循环开始时将result
设置为 1。
while(1){
result = 1;
do{
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.