자료/C언어 스케치

[C 언어 스케치] 프로그래밍 연습 3장 문제 풀이, 솔루션 (2)

PSY_CHOPATH 2020. 6. 30. 00:03

CHAPTER 3 ::

프로그래밍 연습


11. 위 프로그램에서 다음 조건을 만족하는 프로그램으로 수정하여 작성하시오.

아파트 면적의 평을 표준입력으로 받아 제곱미터(m2)로 출력

 

10번 문제의 소스코드, 다시말해 문제의 '위 프로그램'에 해당하는 소스코드

#include <stdio.h>
 
int main(void)
{
	const double 평 = 3.305785;
 
	printf("%2d 평은 %10.3f 제곱미터입니다.\n", 18, 18 * 평);
	printf("%2d 평은 %10.3f 제곱미터입니다.\n", 25, 25 * 평);
	printf("%2d 평은 %10.3f 제곱미터입니다.\n", 32, 32 * 평);
	printf("%2d 평은 %10.3f 제곱미터입니다.\n", 44, 44 * 평);
	printf("%2d 평은 %10.3f 제곱미터입니다.\n", 54, 54 * 평);
 
	return 0;
}

 

아래는 11번의 소스코드

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
	const double _1평 = 3.305785;
	double 평;

	printf("평 수를 입력해주세요. :");
	scanf("%lf", &평);
	printf("%f 평은 %f 제곱미터입니다.\n",평, _1평 * 평);

	return 0;
}


12. 길이 60km, 80km, 100km, 120km를마일(mile) 단위로 출력하는 프로그램을 작성하시오.

1km는 0.621371마일(mile)
#include <stdio.h>

int main(void)
{
	const double 마일변환상수 = 0.621371;

	printf("%3d km = %3f mile\n", 60, 60 * 마일변환상수);
	printf("%3d km = %3f mile\n", 80, 80 * 마일변환상수);
	printf("%3d km = %3f mile\n", 100, 100 * 마일변환상수);
	printf("%3d km = %3f mile\n", 120, 120 * 마일변환상수);

	return 0;
}


13. 위 프로그램에서 다음 조건을 만족하는 프로그램으로 수정하여 작성하시오.

길이 km를 표준입력으로 받아 마일(mile)로 출력
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
	double km;
	const double UNIT = 0.621371;

	printf("킬로미터를 입력해주세요 >> ");
	scanf("%lf", &km);
	printf("%f 킬로미터는 %f 마일입니다.\n", km, km * UNIT);

	return 0;
}


14. 표준입력으로 문자를 하나 입력 받아 다음 조건을 만족하는 프로그램을 작성하시오.

입력된 문자의 문자, 8진수 코드 값, 10진수 코드 값, 16진수 코드 값 출력
#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

int main(void)
{
	char any_word;
	printf("아무 문자나 입력해 주세요. :");
	scanf("%c", &any_word);

	printf("\n입력된 문자  : %3c\n8진수 코드값 : % 3o\n십진수 코드값 : % 3d\n16진수 코드값: % 3X\n"
		, any_word, any_word, any_word, any_word);

		return 0;
}


15. 다음 조건을 만족하는 프로그램을 작성하시오.

º 문자형 연산 ‘A’ + 2결과를 문자로 출력.
º 문자형 연산 ‘A’ + 5결과를 문자로 출력.
º 문자형 연산 ‘S’ - 1 결과를 문자로 출력.
º 문자형 연산 ‘S’ - 3 결과를 문자로 출력.

 

문자열 내부에서 '를 사용하고 싶다면, ' 이나 \' 를 사용할 수 있다. 또는 

printf("%c", '\'');

처럼 형식제어문자를 사용할 수도 있다.

 

아래는 14번의 답안이며, 위의 설명대로 문자열에서 '를 다양한 방법으로 표현한 표현해 보았다.

#include <stdio.h>

int main(void)
{
	
	printf("'A' + 2 = %c\n", 'A' + 2);
	printf("\'A\' + 5 = %c\n", 'A' + 5);
	printf("'S' - 1 = %c\n", 'S' - 1);
	printf("\'S\' - 3 = %c\n", 'S' - 3);

	return 0;
}


16. 두 실수를 표준입력으로 입력 받아 다음 조건을 만족하는 프로그램을 작성하시오.

º 두 실수가 가로, 세로인 사각형의 면적을 전체폭 12, 소수이하 3자리, 우측정렬로 출력
º 두 실수가 가로, 세로인 삼각형의 면적을 전체폭 12, 소수이하 3자리, 좌측정렬로 출력
#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

int main(void)
{
	double width1, length1;
	double width2, length2;

	printf("가로를 입력해주세요. :");
	scanf("%lf", &width1);
	printf("세로를 입력해주세요. :");
	scanf("%lf", &length1);

	printf("가로가 %lf, 세로가 %lf 인 사각형의 면적은 %12.3f 입니다.\n\n"
		, width1, length1, width1 * length1);

	printf("가로를 입력해주세요. :");
	scanf("%lf", &width2);
	printf("세로를 입력해주세요. :");
	scanf("%lf", &length2);

	printf("가로가 %lf, 세로가 %lf 인 삼각형의 면적은 %-12.3f 입니다.\n"
		, width2, length2, (width2 * length2) / 2);

	return 0;
}