예제 #1
0
int main (void)
{
    Tbinary bin1 = {bin1.number = NULL, bin1.length = 0};
    Tbinary bin2 = {bin2.number = NULL, bin2.length = 0};
    
    //allocate space for first number
    bin1.number = (char *)malloc(sizeof(char));
    if(bin1.number == NULL)
        return EXIT_FAILURE;
    
    //allocate space for second number
    bin2.number = (char *)malloc(sizeof(char));
    if(bin2.number == NULL){
        free(bin1.number);
        return EXIT_FAILURE;
    }
    
    printf("Enter two binary numbers:\n");
    
    //number1 load
    if(get_number(&bin1) != EXIT_SUCCESS){
        free(bin1.number);
        free(bin2.number);
        printf("Invalid input.\n");
        return EXIT_FAILURE;
    }
    
    //number2 load
    if(get_number(&bin2) != EXIT_SUCCESS){
        free(bin1.number);
        free(bin2.number);
        printf("Invalid input.\n");
        return EXIT_FAILURE;
    }
    
    //add the two numbers
    if(bin1.length >= bin2.length){
        if(binaryAdd(bin1, bin2) != EXIT_SUCCESS){
            free(bin1.number);
            free(bin2.number);
            printf("Invalid input.\n");
            return EXIT_FAILURE;
        }
    }
    else{
        if(binaryAdd(bin2, bin1) != EXIT_SUCCESS){
            free(bin1.number);
            free(bin2.number);
            printf("Invalid input.\n");
            return EXIT_FAILURE;
        }
    }
    
    free(bin1.number);
    free(bin2.number);
    return EXIT_SUCCESS;
}
예제 #2
0
파일: binaryAdd.c 프로젝트: vlsyu/CLRS
int main(void)
{
  int a[4] = {0, 0, 0, 0};
  int b[4] = {0, 0, 0, 1};

  int *c = binaryAdd(a, b, 4);

  for (int i = 0; i < 5; i++) {
    printf("%d ", c[i]);
  }
  printf("\n");

  free(c);

  return 0;
}