Why my progroma writes in the answer 1 insted of 0
#include <stdio.h>
#include <stdlib.h>
int add(int i, int j , int k)
{
while ( i != 0)
{
j = i % 10;
k = k * j;
i = i / 10;
}
return k;
}
int main ()
{
int num, num2=1, r;
int ret=1;
int i=0;
scanf("%d",&num);
int answer = add(num , r ,num2);
while (num > 0)
{
num = answer;
answer = add(num , r ,num2);
if (num < 10)
{
printf("%d \n ",answer);
system("PAUSE");
return 0;
break;
}
}
printf("%d \n ",answer);
system("PAUSE");
return 0;
}
Since i is an integer, and you are performing a division, it will cast i / 10 back into an integer. For example, if i / 10 resulted in 0.1, then i will equal 0, because 0.1 will be casted as 0 when defined as an integer.