이게 소수점 포함해서 10진수 에서 2진수로바꾸는건대..
여기서 바로 종료되는거 수정하고..
소수점 포함 2진수에서 10진수까지 변환되게 하고싶은대.
수정좀 도와주세요 (굽신굽신)

 #include <stdio.h>
 
  #define N 30
 
  void main()
  {
          float num;
          int num1;
          float num2;
          char *p, num_arr1[N+1] = {0};
          int num_arr2[N+1];
          int i, r, cnt;
 
          printf("수를 입력하세요 : ");
          scanf("%f", &num);
 
          printf("2진법으로 변환 : ");
  
   
    if( num < 0) {
                  printf("-");
                  num = -1 * num;
          }
 
          if( num == (int)num) {
                  num1 = (int)num;
                  num2 = 0;
               
                  for( i = 0; num1 != 0; i++) {
                          r = num1 % 2;
                          num_arr1[N-1-i] = r + '0';
                          num1 = num1 / 2;
                  }
 
                  p = num_arr1+N-i;
 
                  printf("%s", p);
          }
          else {
                  num1 = (int)num;
                  num2 = num - num1;
 
                  for( i = 0; num1 != 0; i++) {
                          r = num1 % 2;
                          num_arr1[N-1-i] = r + '0';
                          num1 = num1 / 2;
                  }
 
                  p = num_arr1+N-i;
 
                  // 소수부분에 대한 진법변환
                  cnt = 0;
                  do {
                          num2 = num2 * 2;
                          num_arr2[cnt] = (int)num2 % 2;
                          cnt++;
                  } while(num2 != (int)num2);
 
                  printf("%s.", p);
                  for( i = 0; i < cnt; i++) {
                          printf("%d", num_arr2[i]);
                  }
          }
          printf("\n");
  }