728x90
728x170
쉽게 풀어 쓴 C언어 Express 8장 프로그래밍 문제 해설
쉽게 풀어 쓴 C언어 Express 8장 프로그래밍 문제 해설
1.
#include <stdio.h>
int even(int n);
int absolute(int n);
int sign(int n);
int main(void) {
int n;
printf("정수를 입력하시오:");
scanf("%d", &n);
printf("even()의 결과: ");
if( even(n) == 1 )
printf("짝수\n"); else
printf("홀수\n");
printf("absolute()의 결과: %d\n", absolute(n));
printf("sign()의 결과: ");
if( sign(n) == 1 )
printf("양수\n"); else
printf("음수\n");
return 0;
}
int even(int n) {
return (n%2==0)? 1: 0;
}
int absolute(int n) {
return (n>0)? n: -n;
}
int sign(int n) {
return (n>0)? 1: -1;
}
2.
#include <stdio.h>
double ftoc(double);
int main(void) {
double f,c;
printf("화씨온도를 입력하시오:");
scanf("%lf", &f);
c = ftoc(f);
printf("섭씨온도는 %f입니다.\n", c);
return 0;
}
double ftoc(double f) {
return (5.0/9.0)*(f-32.0);
}
3.
#include <stdio.h>
double get_radius() {
double r;
printf("원의 반지름을 입력하시오:");
scanf("%lf", &r);
return r;
}
double cal_area(double r) {
return 3.141592*r*r;
}
4.
int main(void) {
double r, area;
r = get_radius();
area = cal_area(r);
printf("원의 면적은 %f입니다\n", area);
return 0;
}
#include <stdio.h>
int get_tax(int income);
int main(void) {
int income;
printf("소득을 입력하시오(만원):");
scanf("%d", &income);
printf("소득세는 %d입니다.\n", get_tax(income));
return 0;
}
int get_tax(int income) {
if( income > 1000 ) return (int) (income*0.1); else return (int) (income*0.08);
}
5.
#include <stdio.h>
#include <math.h>
double sin_degree(double degree);
int main(void) {
double degree;
for (degree=0.0; degree <= 180.0; degree += 10.0)
printf("sin(%f)의 값은 %f\n", degree, sin_degree(degree));
return 0;
}
double sin_degree(double degree) {
return sin( (3.141592*degree)/180.0);
}
6.
#include <stdio.h>
#include <stdlib.h>
int b_rand();
int main(void) {
printf("%d\n", b_rand());
printf("%d\n", b_rand());
printf("%d\n", b_rand());
printf("%d\n", b_rand());
printf("%d\n", b_rand());
return 0;
}
int b_rand() {
return rand()%2;
}
7.
#include <stdio.h>
#include <stdlib.h>
int b_rand();
int main(void) {
int answer, coin;
char c;
while(1) {
printf("앞면 또는 뒷면(1 또는 0):");
scanf("%d", &answer);
coin = b_rand();
if( coin == answer )
printf("맞았습니다.\n"); else
printf("틀렸습니다.\n");
printf("계속하시겠습니까?(y 또는 n):");
scanf(" %c", &c);
if( c == 'n' )
break;
}
return 0;
}
int b_rand() {
return rand()%2;
}
8.
#include <stdio.h>
#include <stdlib.h>
double f_rand();
int main(void) {
printf("%f\n", f_rand());
printf("%f\n", f_rand());
printf("%f\n", f_rand());
printf("%f\n", f_rand());
printf("%f\n", f_rand());
return 0;
}
double f_rand() {
return rand()/(double)RAND_MAX;
}
10.
#include <stdio.h>
int is_multiple(int n, int m);
int main(void) {
int x, y;
printf("첫번째 정수를 입력하시오:");
scanf("%d", &x);
printf("두번째 정수를 입력하시오:");
scanf("%d", &y);
if( is_multiple(x, y) == 1 )
printf("%d는 %d의 배수입니다.\n", x, y); else
printf("%d는 %d의 배수가 아닙니다.\n", x, y);
return 0;
}
int is_multiple(int n, int m) {
if( n%m==0) return 1; else return 0;
}
11.
#include <stdio.h>
#include <math.h>
double get_distance(double x1, double y1, double x2, double y2) {
return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}
int main(void) {
double x1,y1, x2,y2;
printf("첫번째 점의 좌표를 입력하시오:(x, y)");
scanf("%lf %lf", &x1, &y1);
printf("두번째 점의 좌표를 입력하시오:(x, y)");
scanf("%lf %lf", &x2, &y2);
printf("두점 사이의 거리는 %f입니다.", get_distance(x1, y1, x2, y2));
return 0;
}
12.
#include <stdio.h>
int main(void) {
int i, j;
for (i=2; i<100 ; i++) {
if( is_prime(i) == 1 )
printf("%d\n", i);
}
return 0;
}
int is_prime(int x) {
int i;
for (i=2; i<x ; i++) {
if( x%i == 0 ) return 0;
}
return 1;
}
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;
// result = 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;
}
}
728x90
그리드형
'IT > 프로그래밍' 카테고리의 다른 글
쉽게 풀어 쓴 C언어 Express 10장 프로그래밍 문제 해설 (0) | 2020.12.10 |
---|---|
쉽게 풀어 쓴 C언어 Express 9장 프로그래밍 문제 해설 (0) | 2020.12.10 |
쉽게 풀어 쓴 C언어 Express 7장 프로그래밍 문제 해설 (0) | 2020.12.09 |
쉽게 풀어 쓴 C언어 Express 6장 프로그래밍 문제 해설 (0) | 2020.12.08 |
쉽게 풀어 쓴 C언어 Express 5장 프로그래밍 문제 해설 (0) | 2020.12.08 |
댓글