본문 바로가기
작업/Programming

Perfect C 프로그래밍 연습 4장 해결

 

 

 

안녕하세요. 천보기입니다. 3장 문제 풀이를 하면서 자릿수 맞추는 것을 슬쩍 적용했습니다.

그런데 4장에 그것에 대한 설명이 기술되어 있더군요...! 거의 선수학습;;

 

 

4장의 주 내용은 자릿수 맞추는 방법과 printf(), scanf() 함수에 대한 문법입니다.

문제 구성도 그것에 초점이 맞추어져 있어서 풀이 방식이 다 비슷합니다.

 

그래서 몇 개만 풀어보고 넘어갔습니다 ㅎㅎ...

 


문제 풀이

 

1번 문제는 이번 장의 핵심을 잘 이해했는지 확인하는 문제입니다.

정수를 기준으로 기본적인 형식 지정자는 %d 입니다.

 

 

여기서 자릿수(출력의 폭)를 지정하기 위해선 %와 d 사이에 값을 삽입합니다.

ex) 5자리의 폭을 가지는 정수형 = %5d

 

 

기본은 우측 정렬로 출력이 되며 좌측 정렬로 출력하려면 음수 값(%-5d)을 삽입합니다.

빈자리에 0을 채워 넣을 수 있으며 옵션 앞에 0을 추가하면 됩니다.

 

 

8진수와 16진수의 경우 실제 표현 방식이랑 일치하게( 030 = 8진수, 0x3f = 16진수)

 

tip.

일반 숫자 =  10진수

앞에 0으로 시작 = 8진수

앞에 0x 로 시작 = 16진수

 

 

형식 지정자에 #으로 옵션을 추가할 수 있습니다.   ex) %#o  %#x

 

 

 

 


 

4, 5번은 입력 함수인 scanf()를 사용할 수 있는지, 소수 자릿수를 맞출 수 있는지 물어봅니다.

 

 

Visual 프로그램의 경우 scanf() 함수는 보안상의 문제로 사용이 제한되고 있기 때문에

전처리 문장 "#define _CRT_SECURE_NO_WARNINGS"을 이전에 추가하여 작업하셔야 합니다.

 

 

 

계산식이 내용에 포함되어 있는데 출력 문장에 그대로 식을 적어서 적용하셔도 되며

변수로 따로 정의하여 활용하셔도 상관없습니다.

 

 

저는 double 실수형을 사용했으며 이에 맞는 형식 지정자 %lf를 적용하였습니다.

형식 지정자에 대입되는 값들은 잘 입력시켰는지 확인하는 자세가 필요합니다.

 

 

 


 

9번 문제는 4, 5번과 마찬가지로 실수 값을 의도하는 대로 출력할 수 있는지 질문합니다.

면적을 구하는 것은 도형의 넓이 구하는 공식을 적용하면 됩니다.

 

 

 

-끝-