Моя программа получает двоичную строку (длиной до 200 символов), а затем умножает ее на десятичное число.Калькулятор работает только для первых 2-3 итераций.После этого он не возвращает правильный результат.Любая помощь?
#include <stdio.h>
#include "myfun.c"
#include <string.h>
int main()
{
int l,l1;
char a[200],b[200],f[200];
int c[200],d[200];
for (i=0;i<200;i++)
{
c[i]=0;
d[i]=0;
}
gets(a);
l=strlen(a);
l1=strlen(a);
for (int i=0;i<l;i++)
{
c[200-l+i]=a[i]-48;
}
////////////////////////////////////////////
for (int i=0;i<l1;i++)
{
d[200-l1+i]=a[i]-48;
}
////////////////////////////////
for (int t=1;t<193;t++) //here is specify how many times i am multypling
bin_add(c,d);
for (i=0;i<200;i++){
printf("%d",c[i]);
}
return 0;
}
int bin_add(int c[200],int d[200])
{
int car[200]; //carry
i=200;
car[i]=0;
while (i >= 0) {
//find carry and shift it left
//find the sum
car[i-1] = c[i] & (d[i] |car[i]) ;
c[i]=(c[i]^d[i]) ^ car[i];
i--;
}
return c[i];
c[i]=0;
}