C언어 Express chapter5 프로그래밍 문제 3번이요...
희미한눈물
질문 제목 : 어제 하루 이문제에 매달렸으나.... 정확한 답이 안나옵니다.
고수님 도움을 요청합니다.3. cm로 표현된 키를 입력하여 인치로 변환하는 프로그램을 작성하라. 1피트=12인치 / 1인치=2.54cm
__________________________________________
키를 입력하시오: 163
163cm는 5피트 4.17323인치입니다.
__________________________________________질문 내용 : 제가 택한 방법은 다음과 같습니다.
//centimeter to inch
#include stdio.h
int main(void)
{
int x;
double inch, pit;
double pit_1;
double inch_1, sum;
printf(키를 입력하세요: );
scanf_s(%d, &x);
inch=2.54;
pit=12*inch;
sum= x/inch;//sum=인치값
pit_1=sum/12;
inch_1=(int)sum%12; // ------------------------------ sum이 정수지정 안되면 오류나요????
printf(%dcm는 %finch입니다.\n, x, sum);
printf(%dcm는 %.0fpit %finch입니다.\n, x, pit_1, inch_1);
return 0;
}
보다시피 인치값이 포인트 이하가 다 버려집니다.
중간지점 연산에서 sum이 정수지정 안되면 오류가 나서요... 뭐가 잘못되었는지 조언 부탁드립니다.
-
족장
핫핫 감사합니다. 문제풀다 좀 쉬었습니다. 오늘 다시 잡았는데, 두분 덕분에 이리저리 고민하다 풀렸습니다.
-
들햇님
1피트 이하는 인치로 계산을 넘기시니 pit_1은 정수로 선언하시는게 좋겠네요.
inch_1=sum-pit_1*12; -
꽃내음
inch_1=(int)sum%12; // ------------------------------ sum이 정수지정 안되면 오류나요????
%는 나머지 연산자라서 double형이 올 수가 없다네요
나머지 연산자를 쓰지 마시고 피트 만큼의 인치를 빼주셔야 될것 같습니다.
코드 달아드렸었는데 코드는 그냥 지웠습니다. 해보시고 안되시면 댓글 달아주세요
pit 변수는 쓸데없이 선언이 되어 있네요