728x90
728x170
누구나 쉽게 즐기는 C언어 콘서트 8장 실습문제 정답
누구나 쉽게 즐기는 C언어 콘서트 8장 실습문제 정답
1번
#include <stdio.h>
double f(double x, double y);
int main(void) {
double x, y;
x = 1.0, y = 1.0;
printf("x=%.1lf, y=%.1lf, f(x,y)=%lf\n", x, y, f(x, y));
x = 2.0, y = 1.0;
printf("x=%.1lf, y=%.1lf, f(x,y)=%lf\n", x, y, f(x, y));
x = 1.0, y = 2.0;
printf("x=%.1lf, y=%.1lf, f(x,y)=%lf\n", x, y, f(x, y));
return 0;
}
double f(double x, double y) {
return 1.5*x + 3.0*y;
}
2번
#include <stdio.h>
double get_bigger(double, double);
int main(void) {
double x, y;
printf("실수를 입력하시오: ");
scanf("%lf", &x);
printf("실수를 입력하시오: ");
scanf("%lf", &y);
printf("더 큰수는 %lf입니다.\n", get_bigger(x, y));
return 0;
}
double get_bigger(double a, double b) {
if (a > b)
return a;
return b;
}
3번
#include <stdio.h>
void draw_stars(void);
int main(void) {
draw_stars();
printf("Hello World!\n");
draw_stars();
return 0;
}
void draw_stars(void) {
printf("*****************\n");
}
4번
#include <stdio.h>
void get_divisor(int a);
int main(void) {
int n;
printf("약수를 구할 값 입력: ");
scanf("%d", &n);
get_divisor(n);
return 0;
}
void get_divisor(int a) {
int div;
printf("%d=", a);
for (div = 1; div <= a; div++)
if (a%div == 0)
printf("%d ", div);
printf("\n");
}
5번
#include <stdio.h>
void prime(int a);
int main(void) {
int i;
for (i = 2; i <= 100; i++)
prime(i);
return 0;
}
void prime(int a) {
int i;
for (i = 2; i <= a; i++)
if (a%i == 0)
break;
if (a == i)
printf("%d ", a);
}
6번
#include <stdio.h>
#include <math.h>
void ipower(int a, int b);
int main(void) {
int n = 3, k = 5;
ipower(n, k);
return 0;
}
void ipower(int n, int k) {
int i, result;
for (i = 0; i <= k; i++) {
result = pow(n, i);
printf("%d\n", result);
}
}
7번
#include <stdio.h>
#include <math.h>
void dist_2d(double x1, double y1, double x2, double y2);
int main(void) {
double x1, x2, y1, y2;
printf("첫번째 점의 좌표를 입력하시오:(x, y)");
scanf("%lf %lf", &x1, &y1);
printf("두번째 점의 좌표를 입력하시오:(x, y)");
scanf("%lf %lf", &x2, &y2);
dist_2d(x1, y1, x2, y2);
return 0;
}
void dist_2d(double x1, double y1, double x2, double y2) {
double d = 0;
d = sqrt(pow(x1 - x2, 2) + pow(y1 - y2, 2));
printf("두점 사이의 거리는 %lf입니다.", d);
}
8번
#include <stdio.h>
#include <math.h>
void quad_eqn(double a, double b, double c);
int main(void) {
double a, b, c;
printf("2차 방정식의 계수를 입력하시오:\n");
printf("a: ");
scanf("%lf", &a);
printf("b: ");
scanf("%lf", &b);
printf("c: ");
scanf("%lf", &c);
quad_eqn(a, b, c);
return 0;
}
void quad_eqn(double a, double b, double c) {
double D, v1 = 0, v2 = 0;
D = pow(b, 2.0) - (4 * a*c);
if (D > 0) {
v1 = (-b + sqrt(D)) / (2 * a);
v2 = (-b - sqrt(D)) / (2 * a);
printf("두 개의 실근\n%lf, %lf\n", v1, v2);
}
else if (D == 0) {
v1 = -b / (2 * a);
printf("중근\n%lf\n", v1);
}
else if (D < 0)
printf("근이 없다.\n");
}
9번
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int victory = 0, defeat = 0, i = 1;
void Monte_Carlo(int a);
int main(main) {
int coin;
srand((unsigned int)time(NULL));
while (1 == 1) {
coin = rand() % 2 + 1;
Monte_Carlo(coin);
}
return 0;
}
void Monte_Carlo(int r) {
int user;
printf("앞(1) 또는 뒤(2)를 선택하시오(종료는 -1):");
scanf("%d", &user);
//printf("%d 번째 결과\n", i++);
if (user == -1)
exit(1);
else if (user == r) {
printf("사용자가 이겼습니다.\n");
victory++;
}
else {
printf("컴퓨터가 이겼습니다.\n");
defeat++;
}
}
10번
#include <stdio.h>
void add(int a, int b);
void sub(int a, int b);
void mul(int a, int b);
void div(int a, int b);
int main(void) {
int n1, n2;
char op;
while (1 == 1) {
printf("연산을 입력하시오(종료는 Ctrl+C): ");
scanf("%d%c%d", &n1, &op, &n2);
switch (op) {
case '+': add(n1, n2);
break;
case '-': sub(n1, n2);
break;
case '*': mul(n1, n2);
break;
case '/': div(n1, n2);
break;
}
}
return 0;
}
void add(int a, int b) {
static int sadd = 1;
printf("덧셈은 총 %d번 호출되었습니다.\n", sadd++);
printf("연산 결과 : %d\n", a + b);
}
void sub(int a, int b) {
static int ssub = 1;
printf("뺄셈은 총 %d번 호출되었습니다.\n", ssub++);
printf("연산 결과 : %d\n", a - b);
}
void mul(int a, int b) {
static int smul = 1;
printf("곱셈은 총 %d번 호출되었습니다.\n", smul++);
printf("연산 결과 : %d\n", a*b);
}
void div(int a, int b) {
static int sdiv = 1;
printf("나눗셈은 총 %d번 호출되었습니다.\n", sdiv++);
printf("연산 결과 : %d\n", a / b);
}
11번
(a)
#include <stdio.h>
int save(int amount);
int save_total = 0;
int main(void) {
int res, amount;
while (1 == 1) {
printf("얼마를 저축하시겠습니까?(종료는 -1): ");
scanf("%d", &amount);
if (amount == -1) {
printf("종료\n");
break;
}
res = save(amount);
printf("지금까지의 저축액은 %d입니다.\n", res);
}
return 0;
}
int save(int amount) {
save_total += amount;
return save_total;
}
(b)
#include <stdio.h>
int save(int amount);
int main(void) {
int res, amount;
while (1 == 1) {
printf("얼마를 저축하시겠습니까?(종료는 -1): ");
scanf("%d", &amount);
if (amount == -1) {
printf("종료\n");
break;
}
res = save(amount);
printf("지금까지의 저축액은 %d입니다.\n", res);
}
return 0;
}
int save(int amount) {
static int save_total = 0;
save_total += amount;
return save_total;
}
(c)
#include <stdio.h>
int save(int amount);
int draw(int amount);
int save_total = 0;
int main(void) {
int res, amount;
while (1 == 1) {
printf("얼마를 저축하시겠습니까?(종료는 -1): ");
scanf("%d", &amount);
if (amount == -1) {
printf("종료\n");
break;
}
res = save(amount);
printf("지금까지의 저축액은 %d입니다.\n", res);
printf("얼마를 인출하시겠습니까?(종료는 -1): ");
scanf("%d", &amount);
if (amount == -1) {
printf("종료\n");
break;
}
res = draw(amount);
printf("지금까지의 저축액은 %d입니다.\n", res);
}
return 0;
}
int save(int amount) {
save_total += amount;
return save_total;
}
int draw(int amount) {
save_total -= amount;
return save_total;
}
12번
#include <stdio.h>
void show_digit(int x);
int main(void) {
int num;
while (1 == 1) {
printf("정수를 입력하시오: ");
scanf("%d", &num);
if (num < 0) break;
show_digit(num);
printf("\n");
}
return 0;
}
void show_digit(int x) {
if (x > 0) {
show_digit(x / 10);
printf("%d ", x % 10);
}
}
13번
#include <stdio.h>
#include <math.h>
int recurse(int);
int main(void) {
int num;
printf("정수를 입력하시오: ");
scanf("%d", &num);
printf("%d\n", recurse(num));
return 0;
}
int recurse(int a) {
if (a != 1)
return pow(a, 3) + recurse(a - 1);
return 1;
}
728x90
그리드형
'IT > 프로그래밍' 카테고리의 다른 글
파워 자바 컴팩트 3장 연습문제 해설 power java compact (0) | 2020.12.13 |
---|---|
누구나 쉽게 즐기는 C언어 콘서트 9장 실습문제 정답 (0) | 2020.12.13 |
누구나 쉽게 즐기는 C언어 콘서트 7장 실습문제 정답 (0) | 2020.12.13 |
누구나 쉽게 즐기는 C언어 콘서트 6장 실습문제 정답 (0) | 2020.12.13 |
누구나 쉽게 즐기는 C언어 콘서트 5장 실습문제 정답 (0) | 2020.12.13 |
댓글