옥수수와 식빵 그리고 코딩

5장 실습예제 본문

C/2021겨울계절 - 프로그래밍 이해

5장 실습예제

옥식 2021. 12. 27. 12:30

p.6

#include <stdio.h>

int main(void)
{
    int amount = 4000 * 3 + 10000;

    printf("총금액 %d 원\n", amount);
    printf("오천원권 %d 개\n", amount / 5000);
    printf("천원권 %d 개\n", (amount % 5000) / 1000);

    return 0;
}

p.7

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
    int cred2, cred3;

    cred2 = cred3 = 0;
    printf("2학점, 3학점 수강 과목 수 각각 입력: ");
    scanf("%d %d", &cred2, &cred3);

    cred2 = 2 * cred2;
    printf("2학점 과목 총 학점: %d\n", cred2);
    printf("3학점 과목 총 학점: %d\n", cred3 = cred3 * 3);
    printf("총 학점: %d\n", cred2 + cred3);


    return 0;
}

p.8

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
    int x = 0, y = 0;

    printf("두 정수를 입력: ", x, y);
    scanf("%d%d", &x, &y);

    printf("%d\n", x += y);
    printf("%d %d\n", x, y);
    printf("%d\n", x -= y);
    printf("%d %d\n", x, y);

    return 0;
}

p.10

#include <stdio.h>

int main(void)
{
    int m = 1, n = 5;

    printf("%d %d\n", m++, ++n);
    printf("%d %d\n", m, n);
    printf("%d %d\n", m--, --n);
    printf("%d %d\n", m, n);

    return 0;
}

p.11 지폐계산 방법

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
    int amount;
    printf("총 금액 입력: ");
    scanf("%d", &amount);
    printf("계산 금액: %d\n", amount);

    int cnt50000 = amount / 50000;
    int changes = amount % 50000;
    printf("오만원권 %d개 ", cnt50000);

    int cnt10000 = changes / 10000;
    changes %= 10000;
    printf("만원권 %d개 ", cnt10000);

    int cnt5000 = changes / 5000;
    changes %= 5000;
    printf("오천원권 %d개 ", cnt5000);
    printf("나머지 %d원", changes);

    return 0;
}

p.12 관계연산 활용

#include <stdio.h>

int main(void)
{
    int speed = 80;
    printf("%d ", (60 <= speed)); //참
    printf("%d\n", (60 > speed)); //거짓

    printf("%d ", ('a' > 'b')); //거짓
    printf("%d\n", ('Z' <= 'a')); //참
    printf("%d ", (4 == 4.0)); //참
    printf("%d\n", (4.0F != 4.0)); //거짓

    return 0;
}

p.13 논리연산자 && || !

#include <stdio.h>

int main(void)
{
    double grade = 4.21;

    printf("%d ", (4.0 < grade) && (grade <= 5));
    printf("%d ", 0.0 || (4.0 > grade));
    printf("%d\n", (4.2 < grade) || !0.0);
    printf("%d ", 'a' && 3.5);
    printf("%d ", '\0' || "C");
    printf("%d\n", "java" && '\0');


    return 0;
}

p.14 &&연산자로 일정액 이상의 구매액에 쿠폰 발행과 할인 계산

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
    int amount = 0;
    int coupons = 10;

    printf("총 금액: ");
    scanf("%d", &amount);

    int sale = (amount >= 10000) && (coupons++ >= 10);
    printf("할인: %d, 쿠폰 수: %d\n", sale, coupons);


    return 0;
}

p.15 조건연산자

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
    int a = 0, b = 1;

    printf("두 정수 입력: ");
    scanf("%d%d", &a, &b);

    printf("최댓값: %d ", (a > b) ? a : b);
    printf("최솟값: %d\n", (a < b) ? a : b); // (a > b) ? b : a
    printf("절댓값: %d", (a > 0) ? a : -a);
    printf("절댓값: %d\n", (b > 0) ? b : -b);

    ((a % 2) == 0) ? printf("짝수 ") : printf("홀수 ");
    printf("%s\n", ((b % 2) == 0) ? "짝수" : "홀수");


    return 0;
}

p.17 비트연산자 & | ^ ~

#include <stdio.h>

int main(void)
{
    int x = 15;

    printf("%9x\n", -1);
    printf("%3d\n", 10 & -1);
    printf("%3d\n\n", 10 | 0);

    printf("%3d %08x\n", x, x);
    printf("%3d %08x\n", 1, x & 1);
    printf("%3d %08x\n", 15, x | 1);
    printf("%3d %08x\n", 14, x ^ 1);
    printf("%3d %08x\n", ~x, ~x);


    return 0;
}

 

p.19 비트 이동 연산자

#include <stdio.h>

int main(void)
{
    int x = 0xffff;

    printf("%6d %08x\n", x, x);
    printf("%6d %08x\n", x >> 1, x >> 1);
    printf("%6d %08x\n", x >> 2, x >> 2);
    printf("%6d %08x\n", x >> 3, x >> 3);

    printf("%6d %08x\n", x << 1, x << 1);
    printf("%6d %08x\n", x << 2, x << 2);


    return 0;
}

 

p.21 오류남 다시 - 오타때문 ;를 :로 입력

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
    int key = 12345678;

    int origin;
    printf("ID로 사용할 8자리 의 정수를 입력하세요: ");
    scanf("%d", &origin);

    int encode = origin ^ key;
    printf("입력한 ID: %d\n", origin);
    printf("암호화하여 저장된 ID: %d\n", encode);

    int input;
    printf("로그인할 ID 입력하세요: ");
    scanf("%d", &input);

    int result = encode ^ key;
    printf("로그인 성공 여부: %d\n", input == result);


    return 0;
}

 

p.23 결과 이상 다시 - %lf를 %d로 적어서 0이 나옴

#include <stdio.h>

int main(void)
{
    int a = 7.8;
    double b = 5;

    printf("%d %f ", a, b);
    printf("%d %lf ", (int)3.56, (double)3);
    printf("%f %d\n ", 3.56 + 7.87, (int)(3.56 + 7.87));

    printf("%d %f %f\n", 5 / 2, (double)5 / 2, (double)(5/2));


    return 0;
}

 

p.25

#include <stdio.h>

int main(void)
{
    int a, x;
    a = x = 0;

    x = 3 + 4, 2 * 3;
    printf("x = %d", x);
    x = (3 + 4, 2 * 3);
    printf("x = %d\n", x);

    int byte = sizeof(double);
    printf("double 형: %d bytes, %d bits\n", byte, byte * 8);
    int bit = (byte = sizeof a, byte * 8);
    printf("int 형: %d bytes, %d bits\n", byte, bit);

    size_t sz = sizeof(short);
    printf("%zu\n", sz);

    return 0;
}

 

p.28

#include <stdio.h>

int main(void)
{
    int speed = 90;
    int x = 1, y = 2, z = 3;

    printf("%d ", 60 <= speed && speed <= 80 + 20);
    printf("%d ", ((60 <= speed) && (speed <= (80 + 20))));

    printf("%d ", x % 2 == 0 ? y + z : y * z);
    printf("%d ", (x % 2 == 0) ? (y + z) : (y * z));

    printf("%d ", speed += ++x && y - 2);
    printf("%d\n", speed += ((++x) && (y - 2)));

    return 0;
}

p.29

#include <stdio.h>

int main(void)
{
    int m = 5, n = 10;
    printf("%d\n", m += n /= 3);
    printf("%d %d\n", m, n);

    printf("%d ", 3 > 4 ? 3 - 4 : 3 > 4 ? 3 + 4 : 3 * 4);
    printf("%d\n", 3 > 4 ? 3 - 4 : (3 > 4 ? 3 + 4 : 3 * 4));

    printf("%d ", 10 * 3 / 2);
    printf("%d\n", 10 * (3 / 2));

    return 0;
}

p.30 섭씨온도를 화씨온도로 변환해 출력

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
    double celsius, fahrenheit;
    printf("변환할 섭씨 온도를 입력: ");
    scanf("%lf", &celsius);
    
    fahrenheit = (9.0 / 5.0) * celsius + 32.0;
    printf("섭씨 %.2f: 화씨 %.2f\n", celsius, fahrenheit);



    return 0;
}

 

'C > 2021겨울계절 - 프로그래밍 이해' 카테고리의 다른 글

if else를 이용한 연봉 계산  (0) 2021.12.29
7장 실습예제  (0) 2021.12.29
6장 실전예제  (0) 2021.12.28
4장 실습예제  (0) 2021.12.27
3장 실습예제  (0) 2021.12.24
Comments