쉽게 풀어쓴 C언어 EXPRESS(개정 3판) - Chapter 8-3

13.

#include <stdio.h>
#include <math.h>

long long factorial(int n) {

int i;
long long result = 1;

for (i = 1; i <= n; i++)
result *= i;

return result;
}

int main(void) {

int i;
double sum = 1.0;
int n;

printf("어디까지 계산할까요: ");
scanf("%d", &n);

for (i = 1; i <= n; i++)
sum += 1.0 / factorial(i);

printf("오일러의 수는 %f입니다. \n", sum);
return 0;
}

14.

#include <stdio.h>

int is_leap(int y);

int main(void) {

int year;

printf("연도를 입력하시오: ");
scanf("%d", &year);

if (is_leap(year) == 1)
printf("%d년은 366일입니다.\n", year); 
else
printf("%d년은 365일입니다.\n", year);

return 0;
}

int is_leap(int y) {

return (y % 4 == 0) && (y % 100 != 0) || (y % 400);
}

15.

#include <stdio.h>

int round(double a);

int main(void) {

double a;

printf("실수를 입력하시오: ");
scanf("%lf", &a);

printf("반올림한 값은 %d입니다.\n", round(a));
return 0;
}

int round(double a) {

return (int)(a + 0.5);
}

16.

#include <stdio.h>
#include <math.h>

int f_equal(double x, double y);

int main(void) {

double a, b;

printf("실수를 입력하시오: ");
scanf("%lf", &a);
printf("실수를 입력하시오: ");
scanf("%lf", &b);

if (f_equal(a, b) == 1)
printf("같음\n");
else
printf("다름\n");

return 0;
}

double f_abs(double x) {

if (x > 0) 
return x; 
else 
return -x;

}

double f_min(double x, double y) {

if (x > y) 
return y; 
else 
return x;

}

int f_equal(double x, double y) {

double value;

value = f_abs(x - y) / f_min(f_abs(x), f_abs(y));

if (value < 0.000001) 
return 1; 
else 
return 0;

}

17.

#include <stdio.h>
#include <stdlib.h>

void print_menu();
void check_menu_number();
void menu_hamberger();
void menu_cheeseberger();
void menu_sandwitch();

int main(void) {

check_menu_number();
return 0;
}

void menu_hamberger() {

printf("햄버거 메뉴 호출\n");
}

void menu_cheeseberger() {

printf("치즈버거 메뉴 호출\n");
}

void menu_sandwitch() {

printf("샌드위치 메뉴 호출\n");
}

void print_menu() {

printf("1. 햄버거\n");
printf("2. 치즈버거\n");
printf("3. 샌드위치\n");
printf("4. 종료\n");
printf("원하는 메뉴를 선택하시오:");
}

void check_menu_number() {

int value;

while (1) {

print_menu();
scanf("%d", &value);

if (value < 1 || value > 4)
continue; 
else if (value == 1)
menu_hamberger(); 
else if (value == 2)
menu_cheeseberger(); 
else if (value == 3)
menu_sandwitch(); 
else if (value == 4)
return;
}
}

댓글

이 블로그의 인기 게시물

쉽게 풀어쓴 C언어 EXPRESS(개정 3판) - Chapter 10-3

쉽게 풀어쓴 C언어 EXPRESS(개정 3판) - Chapter 16-1

쉽게 풀어쓴 C언어 EXPRESS(개정 3판) - Chapter 13-2