0

要因要因を見つけるために次のプログラムを作成しましたが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);
}
4

3 に答える 3

2

i最後に印刷しませんprintf。次のように変更します。

printf("a = %d, i = %d, modulo = %d\n", a, i, b);
于 2013-09-07T14:42:00.447 に答える
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);
于 2013-09-07T14:42:23.253 に答える
1

いいえ、0 にはなりません。このコードを 6 回と 10 回繰り返します。iの負の値を与えていません。私の場合、i=1298 の値はガベージ値である可能性があります。たぶん、反復回数を増やしているので、いくつかの反復後にiの負の値が発生するのはそのためです。

于 2013-09-07T15:25:50.277 に答える