Программа C Multiply не работает должным образом - PullRequest
0 голосов
/ 26 ноября 2018

Моя программа получает двоичную строку (длиной до 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;
}
...