C语言乘法程序无法正常工作

时间:2018-11-26 19:48:40

标签: c string binary multiplying

我的程序获取一个二进制字符串(最长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;
}

0 个答案:

没有答案