我创建了以下程序来查找 factorial 因子,但我无法理解为什么i
的值在经过几次迭代后变为负数。
#include <stdio.h>
int main()
{
int a,b,i;
printf("enter the number: ");
scanf("%d", &a);
printf("entered value is %d\n", a);
for(i = 1; i < a; i++)
{
printf("iterating for a = %d\n", a);
b = a % i;
if(b == 0)
{
printf("%d\n", i);
}
else
{
printf("a = %d, i = %d, modulo = %d\n", b);
}
}
return (0);
}
答案 0 :(得分:2)
您最后i
不打印printf
。将其更改为:
printf("a = %d, i = %d, modulo = %d\n", a, i, b);
答案 1 :(得分:2)
修正:
printf("a = %d, i = %d, modulo = %d\n", b);
到
printf("a = %d, i = %d, modulo = %d\n", a, i, b);
此外,您的程序找不到factorial!
b =1;
for(i = 1; i <= a; i++)
b*=i;
printf(" Factorial for a = %d \n", b);
答案 2 :(得分:1)
不,我没有变成0.我尝试这个代码进行6次和10次迭代。它没有给出负值。在我的情况下,它的给定值i = 1298可能是垃圾值。也许你在迭代次数上尝试的更多,这就是为什么经过一些迭代后i的负值。