but it doesn't work properly on bcc.what am I gonna do??I worked for 5 days for a code but it means nothing .....could you check it and tell me what is wrong with it??

THE code:multiple two numbers 1-250 digits but it's forbidden to use "float" or "double" in the code...

please help...I will get zero..Code:#include <stdio.h> #include <string.h> char multiplicand[251]; char multiplier[251]; char input[501]; char x[255]; char y[255]; char digit[510]; char carry[510]; int main(void) { int m, n; char *p; int i, j; int temp; fgets(input, 501, stdin); p = strchr(input, '*'); *p = ' '; sscanf(input, "%[0123456789] %[0123456789]", multiplicand, multiplier); m = strlen(multiplicand); n = strlen(multiplier); memset(x, '0', 255); memset(y, '0', 255); memmove(x+(255-m-1), multiplicand, (m+1)); memmove(y+(255-n-1), multiplier, (n+1)); memset(digit, '0', 510); memset(carry, '0', 510); for(j = 253; j >= 0; j--) { for(i = 253; i >= 0; i--){ temp = (x[i] - '0') * (y[j] - '0') + (carry[i+j+1]-'0'); digit[i+j+1] += (temp % 10); if(digit[i+j+1]>'9'){ digit[i+j] += (digit[i+j+1]-'0')/10; digit[i+j+1] = (digit[i+j+1]-'0')%10 + '0'; } carry[i+j] += (temp / 10); carry[i+j+1] = '0'; } } puts(digit); return 0; }