C 在循环中多次计算阶乘只在第一次到第二次时有效
这个程序计算C 在循环中多次计算阶乘只在第一次到第二次时有效,c,C,这个程序计算n仅在第一次通过循环时提供正确的值。在循环的每个后续时间,它都会给出一个不正确的值 我做错了什么 #include <stdio.h> int main() { int n,result=1; while(1){ do{ printf("\nInput n:"); scanf("%d",&n); }while(n<1);
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);
}
}
#包括
int main()
{
int n,结果=1;
而(1){
做{
printf(“\n输入n:”);
scanf(“%d”和“&n”);
}而(n每次通过外循环时,result
得不到相同值的原因是启动循环时没有重置其值
while(1){
result = 1;
do{
...
第一次通过循环result
以值1开始。下一次通过时,它以完成最后一次循环迭代时的值开始,因为您不必更改它
您希望在循环开始时将result
设置为1
while(1){
result = 1;
do{
...
“你能解释一下它出错的原因吗?”CatDragon很高兴我能帮忙。如果你觉得有用的话,请随意解释。