c·c++/c 프로그래밍

소수점이 있는 십진수 뒤집어서 출력하기

바로이순간 2012. 3. 26. 22:44

#include <stdio.h>

#include <math.h>
int main(void) {

  int inum, i, j, k;
  int digits[30]={0,};
  double dec, number;

  printf("Enter a decimal number : ");
  scanf("%lf", &number);

  inum=(int)number; //정수
  dec=number-inum; //소수

  i=0;
  j=inum;
  k=1;
  while(j>9){ //정수부분 먼저 출력
    k=10*k;
    j=j/10;
  }
  while(k>0) {
    digits[i]=inum/k;
    inum=inum%k;
    k=k/10;
    i=i+1;
  }

  while(dec>0.0000001) {
    dec=10*dec;
    k=(int)(dec+0.01);
    dec=dec-k;
    digits[i]=k;
    i=i+1;
  }

  for(j=i-1; j>-1; --j) {
    printf("%d\n", digits[j]);
  }

  return 0;

}