본문으로 바로가기

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;
}