자료/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;
}