옥수수와 식빵 그리고 코딩

7장 연습문제 본문

C/perpect C

7장 연습문제

옥식 2021. 12. 29. 22:46

01. 반복 for문을 사용해 1에서 표준입력받은 양의 정수까지의 합

#define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>

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

    for (i = 1, sum = 0; i <= num; i++)
        sum += i;
    printf("1에서 %d까지의 합: %d", num, sum);

    return 0;
}

02. 0.5씩 증가하는 x와 x에 대한 y값을 출력

#define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>

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

    for (x = 5; x <= 10;){
        y = 3 * x * x * x + 2 * x * x + x + 5; // 식이 for문 안에 들어와 있어야 x 증가값을 받음
        printf("x = %.2lf y = %.2lf\n", x, y);
        x += 0.5;
    }
    return 0;
}

03. 1에서 100까지의 정수 중 2, 3, 5, 7의 배수를 제외한 수를 한 행에 10개씩 출력하는 프로그램

#define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>

int main(void)
{
    int i, cnt = 0;

    for (i = 1; i <= 100; i++) {
        if (i % 2 == 0)
            continue;
        else if (i % 3 == 0)
            continue;
        else if (i % 5 == 0)
            continue;
        else if (i % 7 == 0)
            continue;
        printf("%3d", i);
        cnt += 1;
        if (cnt % 10 == 0)
            printf("\n");

    }
    return 0;
}

04.섬씨온도를 화씨온도로 변환, 이 때 섭씨온도는 20씩 증가

#define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>

int main(void)
{
    int cel = 0, fah = 0;

    for (cel = -60; cel <= 140;) {
        fah = (9.0 / 5) * cel + 32;
        printf("섭씨온도: %3d = 화씨온도: %3d\n", cel, fah);
        cel += 20;
    }
    return 0;
}

05. 표준입력 받은 정수의 구구단 출력

#define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>

int main(void)
{
    int num, i;
    printf("출력할 구구단 2~9사이의 정수 입력: ");
    scanf("%d", &num);

    for (i = 1; i <= 9; i++) {
        printf("%d*%d=%d ", num, i, num * i);
    }
    return 0;
}

06. 입력한 수를 반대로 출력 do while

참고: https://blog.naver.com/tipsware/221287499666

 

[Quiz] 정숫값을 거꾸로 출력하기

: C 언어 관련 전체 목차 http://blog.naver.com/tipsware/221010831969 1. 문제 아래의 예제에서 비어있...

blog.naver.com

#define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>

int main(void)
{
    int num;
    printf("정수 입력: ");
    scanf("%d", &num);

    printf("입력한 수를 반대로 출력: ");

    do
    {
        printf("%d", num % 10);
        num = num / 10;
       
    } while (num);

    return 0;
}

 

07. 1부터 n까지의 합 중에서 10000을 넘지 않는 가장 큰 합과 그 때의 n을 구하는 프로그램

#define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>

int main(void)
{
    int n, sum;
    printf("1부터 n까지의 합 중에서 10000을 넘지 않는 가장 n은?\n");
    for (n = 1, sum = 0; 1; n++) {
        sum += n;
        if (10000 < sum)
            break;
    }
    printf("n = %d, 합은 %d ", n-1, sum-n); // 10000이 되기 전의 수에서 +1이 되었기 때문에
                                                //10000이 넘은 직후 멈췄으므로 직전에 더한 값을 빼줌
                                                //직전에 더한 값은 n-1이 아니라 n임

    return 0;
}

 

08. 1부터 n까지의 곱 중에서 10000을 넘지 않는 가장 큰 곱과 그 때의 n을 구하는 프로그램

#define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>

int main(void)
{
    int n, sum;
    printf("1부터 n까지의 곱 중에서 10000을 넘지 않는 가장 n은?\n");
    for (n = 1, sum = 1; 1; n++) {
        sum *= n;
        if (10000 < sum)
            break;
    }
    printf("n = %d, 곱은 %d ", n-1, sum/n); // 10000이 되기 전의 수에서 +1이 되었기 때문에
                                                //10000이 넘은 직후 멈췄으므로 직전에 곱한 값을 나눠줌
                                                //직전에 더한 값은 n-1이 아니라 n임

    return 0;
}

 

09.반복적으로 정수를 입력 받아 0이면 종료, 0이 아니면 32비트의 비트정보 모두 출력

*비트 정보 출력

참고: https://beomjun0638.tistory.com/66

 

C언어 입력 정수 32비트 정보 모두 출력

다음 조건을 만족하면서 정수를 입력 받아 32비트의 비트 정보를 모두 출력하는 프로그램을 작성하시오. 입력 받은 정수가 0이면 종료하고 0이 아니면 계속 수행 #include int main() { printf("정수를 입

beomjun0638.tistory.com

#define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>

int main(void)
{
    int num, i;
    
    do {
        printf("정수 또는 0(종료)을 입력: ");
        scanf("%d", &num);
        printf("정수 %d의 32비트 내부 값: ", num);
        for (i = 31; i >= 0; i--) {
            printf("%d", num >> i & 1);
        }
        printf("\n");
    } while (num != 0);
    printf("종료합니다");
    

    return 0;
}

10. 소수 구하기(솟수)

#define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>

int main(void)
{
    int i, j;
    printf("2부터 100까지의 소수\n");

    for (i = 2; i <= 100; i++) {
        for (j = 2; j <= 100; j++) {
            if (i % j == 0)
                break;

        }
        if (i == j)
            printf("%5d", i);
    }
    return 0;
}

 

11. 단리 이자 계산 후 총 금액 출력

#define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>

int main(void)
{
    double origin, inter;
    origin = 1000000;

    for (int i = 1; i <= 10; i++)
    {
        inter = origin * 0.045 * i;
        printf("%d년 총 금액: %.2lf\n", i, origin + inter);
    }
    
    return 0;
}

 

 

12. 복리 이자 계산 후 총 금액 출력

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

int main(void)
{
    double origin, later;
    origin = 1000000;

    for (int i = 1; i <= 10; i++)
    {
        later = origin * pow(1.045, i);
        printf("%d년 총 금액: %.2lf\n", i, later);
    }
    
    return 0;
}

 

13. 왼쪽으로 정렬된 숫자트리( 별트리)

#define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>

int main(void)
{
    int i, j, k;

    for (i = 1; i <= 5; i++)
    {
        j = i;
        
        for (k = 1; k <= 5-i ; k++)
            printf(" ");

        for (j; j > 0; j--)
        {
            printf("%d", j);
        }
        printf("\n");
    }
    return 0;
}

 

14.  54321 5432 543 54 5 숫자 역트리 왼쪽정렬

참고https://mechanicaltopdc.blogspot.com/2017/02/pattern-programs-54321-5432-543-54-5.html

 

Pattern Programs (54321 5432 543 54 5)

Mechanical engineering Product design and Commerce CAD Pro/Engineer

mechanicaltopdc.blogspot.com

#define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>

int main(void)
{
    for (int i = 1; i <= 5; i++)
    {
        for (int j = 5; j - i >= 0; j--)//i=1일 때 반복 5번
        {
            printf("%d", j);
        }
        printf("\n");
    }

    return 0;
}

 

15. 

0 101 221012 3210123 432101234 54321012345

가운데 정렬 숫자 트리

참고 https://lastviolet05.tistory.com/218

 

피라미드 출력하기

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 /*     2015.09.08     내용: 2. 다음을 출력하는 프로그램    ..

lastviolet05.tistory.com

#define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>

int main(void)
{
    int k;
    for (int i = 0; i < 8; i++)
    {
        k = i;
        for (int j = 1; j < 8; j++)//왼쪽
        {
            if (j < 8 - i)
            {
                printf(" ");//왼쪽 공백
                continue;
            }
            printf("%d", k);//왼쪽 숫자
            k--;//점점 작아짐
        }
        for (int k = 0; k < i + 1; k++)//오른쪽 0부터
            printf("%d", k);
        
        printf("\n");
    }
    return 0;
}

 

'C > perpect C' 카테고리의 다른 글

9장 연습문제  (0) 2022.01.01
8장 배열 연습문제  (0) 2021.12.30
6장 연습문제  (0) 2021.12.29
5장 연습문제  (0) 2021.12.28
chapter 07 내용점검 연습 04번  (0) 2021.12.27
Comments