why my code shows leading zeros in the answer of the factorial, however it produces the right result.
#include <iostream.h>
int m;
int i;
void mul(int *ans, int num);
int main()
{ int n,num;
int ans[200];
cin>>n;
while(n--)
{ m=1;
ans[0]=1;
for(i=1;i<200;i++)
ans[i]=0;
cin>>num;
if(num)
{
while(num>0)
{ mul(&ans[0],num); //ans= ans * num;
num--;
}
}
for(i=m; i>0; i--)
cout<<ans[i];
}
return 0;
}
void mul(int *ans, int num)
{
int temp=0;
int index;
for(i=0;i<m;i++)
{ index=i;
int x= num*ans[index]+temp;
ans[index]= x%10;
temp= x/10;
}
while(temp>0)
{ ans[index++]= temp%10;
temp=temp/10;
m++;
}
}