본문 바로가기

프로그래밍 언어/C언어

누구나 쉽게 즐기는 c언어 콘서트 개정판 8장 programming

SMALL

누구나 쉽게 즐기는 c언어 콘서트 개정판 8장 프로그래밍

1번 문제

#include<stdio.h>
float f(float x, float y) {
    return 1.5 * x + 3.0 * y;
}
 
int main(void) {
    printf("x = %1.1f, y = %1.1f, f(x,y)=%f\n"1.01.0, f(1.01.0));
    printf("x = %1.1f, y = %1.1f, f(x,y)=%f\n"2.01.0, f(2.01.0));
    printf("x = %1.1f, y = %1.1f, f(x,y)=%f"1.02.0, f(1.02.0));
    return 0;
}
cs

 

2번 문제

#include<stdio.h>
 
float get_biigger(float x , float y) {
    return x > y ? x : y;
}
 
int main(void) {
    float x, y;
    printf("실수를 입력하시오: ");
    scanf("%f"&x);
    printf("실수를 입력하시오: ");
    scanf("%f"&y);
    printf("더 큰 수는 %f입니다.", get_biigger(x, y));
    return 0;
}
cs

 

3번 문제

#include<stdio.h>
 
void draw_stars(void) {
    printf("***********************************************\n");
}
 
int main(void) {
    draw_stars();
    printf("Hello World!\n");
    draw_stars();
    return 0;
}
cs

 

4번 문제

#include<stdio.h>
 
void get_visisor(int x) {
    for (int i = 1; i <= x; i++) {
        if (x % i == 0printf("%d ", i);
    }
}
 
int main(void) {
    int num=8;
    printf("%d의 약수=",num);
    get_visisor(num);
    return 0;
}
cs

 

5번 문제

#include<stdio.h>
 
int prime(int num) {
    for (int i = 2; i < num; i++) {
        if (num % i == 0return 0;
    }
    return 1;
}
 
int main(void) {
    for (int i = 2; i < 101; i++) {
        if (prime(i)) printf("%d ", i);
    }
    return 0;
}
cs

 

6번 문제

#include<stdio.h>
 
int ipower(int x,int y) {
    int result = 1;
    for (int i = 0; i < y; i++) {
        result *= x;
    }
    return result;
 
}
 
int main(void) {
    for (int i = 0; i < 6; i++) {
        printf("%d\n",ipower(3, i));
    }
 
    return 0;
}
cs

 

7번 문제

#include<stdio.h>
#include<math.h>
 
float dist_2d(float x1, float y1, float x2, float y2) {
    float distance;
    return sqrt(pow((x1-x2), 2)+ pow((y1 - y2), 2));
}
 
int main(void) {
    float x1, x2, y1, y2;
    printf("첫번째 점의 좌표를 입력하시오:(x, y)");
    scanf("%f %f"&x1, &y1);
    printf("두번째 점의 좌표를 입력하시오:(x, y)");
    scanf("%f %f"&x2, &y2);
    printf("두점 사이의 거리는 %f입니다.", dist_2d(x1, y1, x2, y2));
    return 0;
}
cs

 

8번 문제

#include<stdio.h>
#include<math.h>
 
void quad_eqn(double a, double b, double c) {
    double result;
    if (b * b - 4 * a * c >= 0) {
        printf("%lf\n", (-+ sqrt(b * b - 4 * a * c)) / (2 * a));
        if (b * b - 4 * a * c == 0return;
        printf("%lf\n", (-- sqrt(b * b - 4 * a * c)) / (2 * a));
    }
    else printf("근이 없다.");
    
}
 
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;
}
cs

 

9번 문제

#include<stdio.h>
 
int make_random() {
    return rand() % 2;
}
 
int main(void) {
    int coin,user_answer;
    while (1) {
        printf("앞(0) 또는 뒤(1)를 선택하시오(종료는 -1):");
        scanf("%d"&user_answer);
        coin = make_random();
        if (user_answer == -1break;
        else if (user_answer == coin) printf("사용자가 이겼습니다.\n");
        else printf("컴퓨터가 이겼습니다.\n");
 
    }
 
    return 0;
}
 
cs

 

10번 문제

#include<stdio.h>
int a = 0, b = 0;
void calc(int x, char op, int y) {
    static int c = 0, d = 0;
    if (op == '+') {
        printf("덧셈은 총 %d번 호출되었습니다\n연산 결과 %d%c%d=%d\n"++a, x, op, y, x + y);
    }
    else if (op == '-') {
        printf("뺄셈은 총 %d번 호출되었습니다\n연산 결과 %d%c%d=%d\n"++b, x, op, y, x - y);
    }
    else if (op == '*') {
        printf("곱셈은 총 %d번 호출되었습니다\n연산 결과 %d%c%d=%d\n"++c, x, op, y, x * y);
    }
    else if (op == '/') {
        printf("나눗셈은 총 %d번 호출되었습니다\n연산 결과 %d%c%d=%d\n"++d, x, op, y, x / y);
    }
}
int main(void){
    int x, y;
    char op;
    while (1) {
    printf("연산을 입력하시오(종료는 Ctrl+C):");
    scanf("%d %c %d"&x, &op, &y);
    calc(x,op,y);
    }
    return 0;
}
cs

 

11번 문제(정적 지역 변수만 사용)

#include<stdio.h>
 
int save(int amount) {
    static int total =0;
    total += amount;
    printf("지금까지의 저축액은 %d입니다.\n", total);
}
 
int main(void) {
    int money;
    while (1) {
        printf("얼마를 저축하시겠습니까?(종료는 -1):");
        scanf("%d"&money);
        if (money == -1break;
        save(money);
    }
    return 0;
}
cs

 

12번 문제

#include<stdio.h>
 
int print_num(int x) {
    int num= x % 10;
    if (num == 0)return;
    print_num((x - num) / 10);
    printf("%d ", num);
}
 
int main(void) {
    int num;
    printf("정수를 입력하시오: ");
    scanf("%d"&num);
    print_num(num);
    return 0;
}
cs

 

13번 문제

#include<stdio.h>
int three(int n) {
    static int result = 0;
    if (n == 0return;
    result += n * n * n;
    three(n-1);
    return result;
}
 
int main(void) {
    int n;
    printf("정수를 입력하시오: ");
    scanf("%d"&n);
    printf("%d",three(n));
    return 0;
}
cs
LIST