자료/C언어 스케치
[C 언어 스케치] 프로그래밍 연습 5장 문제 풀이, 솔루션 (2)
PSY_CHOPATH
2020. 7. 2. 20:16
CHAPTER 5 ::
프로그래밍 연습
11. 다음 조건을 만족하는 프로그램을 작성하시오.
■ 원금이 1,000,000인 경우, 예치 기간을 1년에서 10년까지 매년 말에 받을 총 금액을 출력
■ 년단위 단리이자 = 원금 * 이율(4.5%) * 년(예치기간)
■ 만기 시 총 수령액(단리적용) = 원금(1 + 이율(4.5%) * 년(예치기간))
년단위 단리이자 공식을 왜 알려주는지 의문.. 써먹지도 않는 조건같은데...
#include <stdio.h>
int main(void)
{
const double rate = 0.045;
double origin = 1000000, total;
int i;
for (i = 1; i <= 10; i++)
{
total = origin * (1 + rate * i);
printf("%d년 총 금액: %.0f\n", i, total);
}
return 0;
}
12. 위 프로그램에서 다음 조건을 만족하는 프로그램으로 수정하여 작성하시오.
■ 원금이 1,000,000인 경우, 예치 기간을 1년에서 10년까지 매년 말에 받을 총 금액을 출력
■ 만기 시 총 수령액(복리적용) = 원금(1 + 이율(4.5%))년 -> (원금(1 + 이율(4.5%))^년, 책에 오타난 듯) (예치기간)
■ 함수 pow(a, b) = ab이용 -> (pow(a, b) = a^b, 책에 오타난 듯), #include <math.h>필요
#include <stdio.h>
#include <math.h>
int main(void)
{
const double rate = 0.045;
double origin = 1000000, total;
int i;
for (i = 1; i <= 10; i++)
{
total = origin * pow((1 + rate), i);
printf("%d년 총 금액: %.0f\n", i, total);
}
return 0;
}
13. 2단부터 9단까지 구구단을 출력하는 프로그램을 작성하시오.
#include <stdio.h>
int main(void)
{
int i, j;
for (i = 1; i <= 9; i++)
{
for (j = 2; j <= 9; j++)
{
printf("%d X %d = %2d ", j, i, i * j);
}
puts("");
}
return 0;
}
14. 다음 식을 참고로 섭씨 온도(C)를 화씨 온도(F)로 변환하는 프로그램을 다음과 같은 출력이 나오도록 작성하시오.
■ F = ( 9.0 / 5.0 ) * C + 32
■ 섭씨온도가-60부터 140까지 20씩증가, 이때의 화씨온도를 구하여 출력하는데, 온도는 모두 정수 형태로 출력
#include <stdio.h>
int main(void)
{
int C, F;
for (C = -60; C <= 140; C += 20)
{
F = (int)((9.0 / 5.0) * C) + 32;
printf("섭씨온도가 %3d일 때, 화씨온도는 %3d입니다.\n", C, F);
}
return 0;
}
15. 1부터 n까지의 합 중에서 10000을 넘지 않는 가장 큰 합과 그 때의 n을 구하는 프로그램을 작성하시오.
#include <stdio.h>
int main(void)
{
int n, sum = 0;
for (n = 1; n <= 1000; n++)
{
sum += n;
if (sum > 10000)
{
break;
}
}
// n과 sum은 10000을 넘긴 직후의 값이다.
sum = sum - n;
n = n - 1;
printf("10000을 넘기지 않는 가장 큰 합은 %d 이며, \n그 때의 n의 값은 %d 입니다.\n", sum, n);
return 0;
}
16. 문자 하나와 온도를 실수형으로 입력받아, 문자가 F나 f이면 입력 받은 값을 화씨로 간주하여 섭씨로 바꾸고, 입력 받은 문자가 C나 c이면 입력받은 값을 섭씨로 간주하여 화씨로 바꾸어 결과를 출력하는 프로그램을 작성하시오.
■ F = ( 9.0 / 5.0 ) * C + 32
■ C = ( 5.0 / 9.0 ) * ( F – 32 )
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main(void)
{
char 문자;
double 입력값, 출력값;
printf("== 화씨 <-> 섭씨 변환 프로그램입니다. ==\n\n");
printf("화씨를 입력하려면 C 또는 c 를, \n");
printf("섭씨를 입력하려면 F 또는 f 를 입력해주세요. \n");
printf("입력 : ");
scanf("%c", &문자);
puts("");
printf("%s",
문자 == 'c' || 문자 == 'C' ? "섭씨를 입력받았습니다. " : (문자 == 'f' || 문자 == 'F' ? "화씨를 입력받았습니다. " : "잘못 입력하셨습니다. \n"));
if (문자 == 'c' || 문자 == 'C')
{
printf("온도를 입력하세요. >> ");
scanf("%lf", &입력값);
출력값 = (9.0 / 5.0) * 입력값 + 32;
printf("섭씨 %.2f도는 화씨 %.2f도 입니다.\n", 입력값, 출력값);
}
else if (문자 == 'f' || 문자 == 'F')
{
printf("온도를 입력하세요. >> ");
scanf("%lf", &입력값);
출력값 = (5.0 / 9.0) * (입력값 - 32);
printf("화씨 %.2f도는 섭씨 %.2f도 입니다.\n", 입력값, 출력값);
}
return 0;
}