Tycoon/알고리즘의 이해(2): C언어편 (完)

[알고리즘의 이해(2): C언어편] 연습문제 13장

nyamnmm 2025. 1. 3. 00:54
『 1~100을 이용한 알고리즘의 이해 2: C언어편 』
저자: 김득수
사용 프로그램: Visual Studio 2019
※ 본 게시글에 작성된 문제는 책 본문과 일치하지 않는 부분이 존재하며, 풀이 또한 정확하지 않습니다.

 


 

13-1.
cos(x)에서 각도x의 값이 0˚에서 90˚까지 30˚씩 증가하는 경우 cos(x)의 값을 구하는 순서도를 완성하시오.
문제풀이
#include <stdio.h>
#include <math.h>
#define PI 3.14159

void main() {
	int a;
	float x;

	for (a = 0; a <= 90; a = a + 30) {
		x = PI * a / 180;
        
		printf("%d도 > %f \n", a, cos(x));
	}
}

 

실행결과
0도 > 1.000000
30도 > 0.866026
60도 > 0.500001
90도 > 0.000001

 


 

13-2.
tan(x)에서 각도 x의 값이 0˚에서 90˚까지 15˚씩 증가하는 경우 tan(x)의 값을 구하는 순서도를 완성하시오.
문제풀이
#include <stdio.h>
#include <math.h>
#define PI 3.14159

void main() {
	int a;
	float x;

	for (a = 0; a <= 90; a = a + 15) {
		x = a * PI / 180;

		printf("x = %d \t tan(x) = %f \n", a, tan(x));
	}
}

 

실행결과
x = 0    tan(x) = 0.000000
x = 15   tan(x) = 0.267949
x = 30   tan(x) = 0.577350
x = 45   tan(x) = 0.999999
x = 60   tan(x) = 1.732047
x = 75   tan(x) = 3.732034
x = 90   tan(x) = 788898.123826

 


 

13-3.
log(x)에서 x의 값이 0.5에서 2.5까지 0.5씩 증가 하는 경우 log x의 값을 구하는 순서도를 완성하시오
문제풀이
#include <stdio.h>
#include <math.h>

void main() {
	int a;	// ※ a의 값은 소수이므로, int가 아니라 float나 double을 써야함
 	float x;

	for (a = 0.5; a <= 2.5; a = a + 0.5) {
		printf("x = %f 일 때, log(x) = %f \n", a, log(x)); 	// ※ x의 값이 없음.

	}
}

 

오답풀이
#include <stdio.h>
#include <math.h>

void main() {
	float a, x;

	for (a = 0.5; a <= 2.5; a = a + 0.5) {
		x = log(a);

		printf("x = %f 일 때, log(x) = %f \n", a, x);
	}
}

 

실행결과
x = 0.500000 일 때, log(x) = -0.693147
x = 1.000000 일 때, log(x) = 0.000000
x = 1.500000 일 때, log(x) = 0.405465
x = 2.000000 일 때, log(x) = 0.693147
x = 2.500000 일 때, log(x) = 0.916291

 


 

13-4. eˣ에서 x의 값이 0에서 5까지 1씩 증가하는 경우 eˣ의 값을 구하는 순서도를 완성하시오.
문제풀이
#include <stdio.h>
#include <math.h>

void main() {
	int a;
	float x;

	for (a = 0; a <= 5; a++) {
		x = exp(a);

		printf("x = %d 일 때, exp(x) = %f \n", a, x);
	}
}

 

실행결과
x = 0 일 때, exp(x) = 1.000000
x = 1 일 때, exp(x) = 2.718282
x = 2 일 때, exp(x) = 7.389056
x = 3 일 때, exp(x) = 20.085537
x = 4 일 때, exp(x) = 54.598148
x = 5 일 때, exp(x) = 148.413162