옥수수와 식빵 그리고 코딩

7장 실습예제 본문

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

7장 실습예제

옥식 2021. 12. 29. 13:06

p. 5 특정 문자열 여러번 반복 출력

#include <stdio.h>

int main(void)
{
    int count = 1;

    while (count <= 3)
    {
        printf("반복, 재미있네요!\n");
        count++;
    };
    printf("\n제어변수 count => %d\n", count);

    return 0;
}

p. 6 while반복으로 표준입력 실수 모두 더하기

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
    double number = 1, sum = 0;
    while (number != 0.0) {
        printf("실수 입력: ");
        scanf("%lf", &number);
        sum += number;
    }
    printf("합 = %.2lf", sum);

    return 0;
}

 

p. 7 반복 while문을 사용, 키 130이하 어린이 정원 채우기

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define MAX 4

int main(void)
{
    int num = 0;
    double height = 0;
    while (num < MAX) {
        printf("키 입력:");
        scanf("%lf", &height);
        if (height <= 130)
            num++;
    }

    printf("정원 %d명 완료!\n", num);

    return 0;
}

 

p. 9 do while 메뉴 주문 반복

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
    int input;
    do
    {
        printf("[0]종료 [1]아메리카노 [2]카페라떼 [3]카푸치노 \n");
        printf("주문할 커피 또는 종료(0)를 입력: ");
        scanf("%d", &input);
    } while (input != 0);

    return 0;
}

 

p.11

#include <stdio.h>
#define MAX 5

int main(void)
{
    int i;
    for (i = 1; i <= MAX; i++)
    {
        printf("반복 %d\n", i);
    }

    printf("\nfor 종료 이후 i => %d\n", i);

    return 0;
}

 

 

p.12

#include <stdio.h>
#define MAX 3
#define INCREMENT 10

int main(void)
{
    double celsius = 12.46;

    printf("섭씨   화씨\n");
    for (int i = 1; i <= MAX; i++, celsius += INCREMENT)
    {
        printf("%8.2lf %8.2lf\n", celsius, 9.0 / 5 * celsius + 32);
    }

    return 0;
}

 

p.15

#include <stdio.h>

int main(void)
{
    int i, sum;
    for (i = 1, sum = 0; i <= 10; i++)
        sum += i;
    printf("1~10 합: %d\n", sum);

    for (i = 1, sum = 0; i <= 10;)
        sum += i++;
    printf("1~10 합: %d\n", sum);

    for (i = 0, sum = 0; i <= 9;)
        sum += ++i;
    printf("1~10 합: %d\n", sum);

    for (i = 1, sum = 0; i <= 10; sum += i++);
    printf("1~10 합: %d\n", sum);

    for (i = 0, sum = 0; i <= 9; sum += ++i);
    printf("1~10 합: %d\n", sum);

    return 0;
}

 

 

p.17 1부터 표준입력한 양수까지의 합을 구하는 for, while

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
    int i, sum, max;
    printf("양의 정수 입력: ");
    scanf("%d", &max);

    for (i = 1, sum = 0; i <= max; i++)
        sum += i;
    printf("\nfor 문으로 구한 1에서 %d까지 합: %3d\n", max, sum);

    i = 1, sum = 0;
    while (i <= max)
    {
        sum += i;
        i++;
    }
    printf("while문으로 구한 1에서 %d까지의 합: %3d\n", max, sum);

    return 0;
}

 

p.18

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
    int input = 0, result = 0, digit = 0;
    int devider = 100;

    printf("양의 정수[100~999] 입력 : ");
    scanf("%d", &input);
    result = input;
    do
    {
        digit = result / devider;
        result %= devider;
        printf("%3d단위 출력: %d\n", devider, digit);
        devider /= 10;
    } while (devider >= 1);

    return 0;
}

p.19

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
    int input;
    while (1)
    {
        printf("양의 정수 또는 0[종료]입력 후 [Enter]: ");
        scanf("%d", &input);
        if (input == 0)
            break;
        printf("입력한 정수 %d: 16진수 %#x\n", input, input);
    }
    puts("종료");

    return 0;
}

 

p.20

#include <stdio.h>

int main(void)
{
    const int MAX = 15;
    
    printf("1에서 %d까지 정수 중에서 3으로 나누어 떨어지지 않는 수\n", MAX);
    for (int i = 1; i <= MAX; i++)
    {
        if (i % 3 == 0)
            continue;
        printf("%3d", i);
    }
    puts("");

    return 0;
}

 

 

p.22

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
    int input;
    do
    {
        printf("양의 정수 또는 음수나 0[종료]입력 후 [Enter] >> ");
        scanf("%d", &input);
        if (input <= 0)
            break;
        printf("정수 %d: 8진수 %#o 16진수 %#x\n", input, input, input);

    } while (1);

    return 0;
}

 

p.23

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
    int num, j;
    printf("2 이상 양의 정수 입력: ");
    scanf("%d", &num);

    for (j = 2; j < num; j++)
    {
        if (num % j == 0)
            break;
    }

    if (j == num)
        printf("%d는 소수이다.\n", num);
    else
        printf("%d는 소수가 아니다.\n", num);

    return 0;
}

 

p.25 중첩반복

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
    int m, n;
    for (m = 1; m <= 5; m++)
    {
        printf("m = %-2d\n", m);
        for (n = 1; n <= 7; n++)
            printf("n = %-3d", n);
        puts("");
    }
    return 0;
}

 

p.26 왼쪽 정렬 별트리

#include <stdio.h>

int main(void)
{
    const int MAX = 5;
    int i, j;

    for (i = 1; i <= MAX; i++)
    {
        for (j = 1; j <= i; j++)
            printf("*");
        puts("");
    }
    return 0;
}

 

p.27 3중 중쳡 반복문

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
    int input, sum, i, j;
    do
    {
        printf("양의 정수 또는 0(종료)을 입력: ");
        scanf("%d", &input);

        for (i = 1; i <= input; i++)
        {
            for (j = 1, sum = 0; j <= i; j++)
            {
                printf("%d", j);
                j == i ? printf("=") : printf("+");
                sum += j;
            }
            printf("%d\n", sum);
        }
    } while (input > 0);

    printf("종료합니다.");
    return 0;
}

 

p.28 중첩된 for문을 사용하여 구구단 출력

#include <stdio.h>
#define MAX 9

int main(void)
{
    for (int i = 2; i <= MAX; i++)
    {
        printf("%5d단 출력\n", i);
        for (int j = 2; j <= MAX; j++)
        {
            printf("%d * %d = %2d  ", i, j, i * j);
        }
        puts("");
    }
    return 0;
}

 

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

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