代码块自己给变量赋值

Codeblocks assigned a value to a variable on its own

所以我在 c 中声明了一个名为 toplam 的整数,但根本没有给它赋值。然而,当我打开 watches window 时,显示它的值为 16。我使用了一个在线 c 编译器并将代码复制并粘贴到其中并且它 运行 顺利地没有为 toplam 分配任何值除非被问到。我认为这是 Codeblocks 本身的错误,但我不确定。如何解决此问题而不必从 toplam 中减去 16 使其为 0?

int fak(int j){
    int sonuc=1;
    while(j!=0){
        sonuc = sonuc * j;
        j--;
    }

    return sonuc;
}


int main()
{
    int sayi,i,j,sonuc,toplam;
    printf("sayi giriniz: \n");
    scanf("%d",&sayi);

    for(i=1;;i*=10){
        if(sayi/i==0){
            break;
        }
        j=(sayi/i)%10;
        printf("%d\n",j);
        toplam=toplam+fak(j);
    }

    printf("%d",toplam);


    return 0;
}

这是我的代码。它获取输入的数字并打印出其中的各个数字,然后将它们的 faktorials 加在一起。

你只需将 toplam 初始化为 0

#include <stdio.h>

int fak(int j)
{
    int sonuc=1;
    while(j!=0)
    {
         sonuc = sonuc * j;
         j--;
    }
     return sonuc;
 }

int main()
{
    int sayi,i,j,sonuc,toplam=0;
    printf("sayi giriniz: ");
    scanf("%d",&sayi);
   for(i=1;i<=(i*10);i++)
   {
       if(sayi/i==0)
       {
           break;
       }
       j=(sayi/i)%10;
       printf("%d \n",j,fak(j));
       toplam=toplam+fak(j);
    }
    printf("%d",toplam);
    return 0;
}