CHAPTER 4 ::
프로그래밍 연습
11. 세 수를 입력받아 가장 큰 수를 구하는 프로그램을 조건 연산자를 이용하여 작성하시오.
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main(void)
{
int A,B,C,D,E;
printf("==세 정수를 입력받아 가장 큰 수를 구하는 프로그램입니다.==\n\n");
printf("첫 번째 정수를 입력해 주세요: ");
scanf("%d", &A);
printf("두 번째 정수를 입력해 주세요: ");
scanf("%d", &B);
D = (A < B) ? B : A; // A와 B를 비교, 더 큰 수를 D로 설정
printf("세 번째 정수를 입력해 주세요: ");
scanf("%d", &C);
E = (C < D) ? D : C; // D와 C를 비교, 더 큰 수를 E로 설정
printf("\n입력된 세 정수 중에서 가장 큰 수는 %d 입니다.\n", E);
return 0;
}
12. 표준입력으로 키와 몸무게를 실수로 입력 받아 다음 조건을 이용하여 정상인지, 비만인지 출력하는 프로그램을 작성하시오.
(몸무게 <= (키 - 100) * 0.9)이면 정상, 아니면 비만
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main(void)
{
double height, weight;
printf("==키와 몸무게를 바탕으로 비만인지 아닌지 추정하는 프로그램입니다.==\n\n");
printf("본인의 키를 입력해 주세요. : ");
scanf("%lf", &height);
printf("본인의 몸무게를 입력해 주세요. : ");
scanf("%lf", &weight);
printf("\n당신의 체중은 %s \n", weight <= (height - 100) * 0.9 ? "다행히 정상입니다." : "아쉽게도 비만입니다.");
return 0;
}
13. 다음 조건을 만족하는 프로그램을 작성하시오.
º 원금이 1,000,000인 경우, 예치 기간을 년 단위로 입력 받아 만기시 총 금액을 출력
º 년단위단리이자 = 원금 * 이율(4.5%) * 년(예치기간)
·º 만기 시 총 수령액(단리적용) = 원금(1 + 이율(4.5%) * 년(예치기간))
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main(void)
{
double principal = 1000000;
double rate = 0.045;
double total_receipts;
int period_year;
printf("==원금이 1,000,000(백만원)이고 이율이 4.5%%일 때, 예치기간에 따른 만기시 총 수령액을 계산하는 프로그램입니다.==\n\n");
printf("예치 기간을 년 단위로 입력해 주세요: ");
scanf("%d", &period_year);
total_receipts = principal * (1 + rate * period_year);
printf("\n만기시 총 수령액은 %.0f 원 입니다.\n", total_receipts);
return 0;
}
14. 위 프로그램에서 다음 조건을 만족하는 프로그램으로 수정하여 작성하시오.
º 원금이 1,000,000인 경우, 예치 기간을 년 단위로 입력 받아 만기 시 총 금액을 출력
º 만기 시 총 수령액(복리적용) = 원금(1 + 이율(4.5%))^년(예치기간)
º 함수 pow(a, b) = ab이용, #include <math.h>필요
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main(void)
{
double principal = 1000000;
double rate = 0.045;
double total_receipts;
int period_year;
printf("예치 기간을 년 단위로 입력해 주세요: ");
scanf("%d", &period_year);
total_receipts = principal * pow((1 + rate), period_year);
printf("\n만기시 총 수령액은 %.0f 원 입니다.\n", total_receipts);
return 0;
}
15. 이차원 평면에서 다음 두 점 (3.2, 4.6)와 (-8.3, -2.3)의 중간 지점을 출력하는 프로그램을 작성하시오.
(X1, Y1)과 (X2, Y2)의 중간지점 = ((X1 + X2)/2, (Y1 + Y2)/2)
#include <stdio.h>
int main(void)
{
double x1, x2, y1, y2;
x1 = 3.2, y1 = 4.6, x2 = -8.3, y2 = -2.3;
printf("중간지점 : (%.1f, %.1f)\n", (x1 + x2) / 2, (y1 + y2) / 2);
return 0;
}
16. 지불할 금액을 정수로 입력 받아 화폐단위가 각각 몇 개씩 필요한지 출력하는 프로그램을 작성하시오.
º 입력은 최소 천원 단위로 입력
º 화폐단위는 50000, 10000, 5000, 1000 4가지이며, 가능한 큰 화폐단위로 지불
º 입력이 236,000이면 50000원권 4개, 10000원권 3개, 5000원권 1개, 1000원권 1개
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main(void)
{
int money;
printf("==지불할 최소한의 화폐 단위와 지폐 수를 출력하는 프로그램입니다.==\n\n");
printf("지불할 금액(최소단위는 천원) : ");
scanf("%d", &money);
printf("\n%d 원을 입력받았습니다. 이는\n\n", money);
printf("50000원%7d개\n", money / 50000); // 오만으로 나눠 몫을 출력
printf("10000원%7d개\n", money % 50000 / 10000); // 오만으로 나머지연산해서 남은 것들을 만으로 나눠 몫을 출력
printf("5000원 %7d개\n", money % 10000 / 5000); // 만으로 나머지연산해서 남은 것들을 오천으로 나눠 몫을 출력
printf("1000원 %7d개 \n\n입니다.\n", money % 5000 / 1000); // 오천으로 나머지연산해서 남은 것들을 천으로 나눠 몫을 출력
return 0;
}
'자료 > C언어 스케치' 카테고리의 다른 글
[C 언어 스케치] 프로그래밍 연습 5장 문제 풀이, 솔루션 (2) (0) | 2020.07.02 |
---|---|
[C 언어 스케치] 프로그래밍 연습 5장 문제 풀이, 솔루션 (1) (0) | 2020.07.01 |
[C 언어 스케치] 프로그래밍 연습 4장 문제 풀이, 솔루션 (1) (0) | 2020.06.30 |
[C 언어 스케치] 프로그래밍 연습 3장 문제 풀이, 솔루션 (2) (0) | 2020.06.30 |
[C 언어 스케치] 프로그래밍 연습 3장 문제 풀이, 솔루션 (1) (0) | 2020.06.29 |