옥수수와 식빵 그리고 코딩

6장 연습문제 본문

C/perpect C

6장 연습문제

옥식 2021. 12. 29. 00:05

01. 두 실수와 연산자를 붙여서 입력받은 두 실수의 사칙연산 수행 - ???어케 분리하는거지

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
    char cnt;
    printf("두 실수와 연산자를 붙여서 입력: ");
    scanf("%c", &cnt);
	//이 이후로 분리는 어케하는지 모르겠다.

    return 0;
}

 

02. 좌표값(x, y)를 표준입역으로 받아 평면의 사분면 출력

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
    double x, y, location;
    printf("좌표 x, y 입력: ");
    scanf("%lf %lf", &x, &y);

    if (x > 0, y > 0) {
        location = 1;
    }
    else if (x < 0, y>0) {
        location = 2;
    }
    else if (x < 0, y < 0) {
        location = 3;
    }
    else if (x > 0, y < 0) {
        location = 4;
    }
    printf("좌표 (%lf, %lf): %.0lf사분면", x, y, location);

    return 0;
}

03. 입력받은 두 실수를 음수는 양수로 바꾸어 연산하여 출력

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
    double x, y;
    printf("두 실수 입력: ");
    scanf("%lf %lf", &x, &y);

    if (x > 0, y > 0)
        printf("%lf", x + y);
    else if (x > 0, y <= 0)
        printf("%lf", x - y);
    else if (x <= 0, y > 0)
        printf("%lf", -x + y);
    else
        printf("%lf", -x - y);

    return 0;
}

04.bmi 비만정도 출력 프로그램

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
    double tall, weight;
    printf("키와 뭄무게를 입력: ");
    scanf("%lf %lf", &tall, &weight);
    printf("키: %lf, 몸무게: %lf\n", tall, weight);

    double bmi = weight / ((tall/100) * (tall/100)); //bmi 계산에서 키는 (m)단위
    printf("BMI지수: %lf ", bmi);

    if (bmi >= 40)
        printf("고도비만");
    else if (35 <= bmi && bmi < 40)
        printf("중등도 비만");
    else if (30 <= bmi && bmi < 35)
        printf("비만");
    else if (25 <= bmi && bmi < 30)
        printf("과체중");
    else if (18.5 <= bmi && bmi < 25)
        printf("정상");
    else
        printf("저체중");

    return 0;
}

05. 성별, 신장, 몸무게를 입력받아 비만도 출력 프로그램

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
    int x;
    printf("성별을 입력하세요. 1남자, 2여자: ");
    scanf("%d", &x);
    printf("\n");

    double tall, weight;
    printf("키와 몸무게를 입력하세요: ");
    scanf("%lf %lf", &tall, &weight);
    printf("현재 신장: %lf, 체중: %lf, ", tall, weight);
    
    if (x == 1) {
        double strd = (tall / 100) * (tall / 100) * 22;
        printf("표준체중: %lf\n", strd);

        double bmi = weight / strd * 100;
        printf("비만지수: %lf ", bmi);
        printf("판정: ");
        if (bmi/10 > 20)
            printf("비만");
        else if (10 < bmi/10 <= 20)
            printf("체중과다");
        else if (-10 <= bmi/10 <= 10)
            printf("정상");
        else if (bmi/10<10)
            printf("저체중");

    }
    else if (x == 2) {
        double strd = (tall / 100) * (tall / 100) * 21;
        printf("표준체중: %lf\n", strd);

        double bmi = weight / strd * 100;
        printf("비만지수: %lf", bmi);
        printf("판정: ");
        if (bmi/10 > 20)
            printf("비만");
        else if (10 < bmi/10 <= 20)
            printf("체중과다");
        else if (-10 <= bmi/10 <= 10)
            printf("정상");
        else if (bmi / 10 < 10)
            printf("저체중");
    }
    
    return 0;
}

06. 입력받은 소득에 대한 세율 출력

#define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>

int main(void)
{
    double income;
    printf("소득 입력: ");
    scanf("%lf", &income);
    printf("현재 종합 소득: %.0lf", income);

    if (income <= 12000000)
        printf(", 세율: 6%%");
    else if (12000000 < income && income <= 46000000)
        printf(", 세율: 15%%");
    else if (46000000 < income && income <= 88000000)
        printf(", 세율: 24%%");
    else if (88000000 < income <= 150000000)
        printf(", 세율: 35%%");
    else if (150000000 < income <= 300000000)
        printf(", 세율: 38%%");
    else if (300000000 < income <= 500000000)
        printf(", 세율: 40%%");
    else
        printf(", 세율: 42%%");

    return 0;
}

07. 월에 대항하는 분기를 if문으로 작성

#define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>

int main(void)
{
    int month;
    printf("월을 입력하세요: ");
    scanf("%d", &month);

    if (1 <= month && month < 4)
        printf("%d월은 %d분기입니다.", month, 1);
    else if (4 <= month && month < 7)
        printf("%d월은 %d분기입니다.", month, 2);
    else if (7 <= month && month < 10)
        printf("%d월은 %d분기입니다.", month, 3);
    else if (10 <= month && month <= 12)
        printf("%d월은 %d분기입니다.", month, 4);

    return 0;
}

08. 연도의 윤년 판단

#define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>

int main(void)
{
    int year;
    printf("연도 입력: ");
    scanf("%d", &year);

    if ((year % 4) == 0 && (year % 100) != 0)
        printf("%d 년은 윤년입니다.", year);
    else if ((year % 400) == 0)
        printf("%d 년은 윤년입니다.", year);
    else
        printf("%d 년은 윤년이 아닙니다.", year);

    return 0;
}

09. 연도와 월을 입력받아 월의 말일을 출력하는 프로그램 switch문

#define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>

int main(void)
{
    int year, month;
    printf("연, 월 입력: ");
    scanf("%d %d", &year, &month);

    switch (month)
    {
    case 2:
        printf("%d년 %d월의 말일은 %d입니다.", year, month, 29);
        break;
    case 1: case 3: case 5: case 7: case 8: case 10: case 12:
        printf("%d년 %d월의 말일은 %d입니다.", year, month, 31);
        break;
    case 4: case 6: case 9: case 11:
        printf("%d년 %d월의 말일은 %d입니다.", year, month, 30);
        break;
    default:
        printf("값을 잘못 입력하였습니다.");
        break;
    }
    return 0;
}

10. f나 c를 입력받아 화씨온도는 섭씨온도로, 섭씨온도는 화씨온도로 바꾸어 결과 출력

#define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>

int main(void)
{
    char cel;
    printf("입력한 온도를 변환합니다.\n 문자를 F,f로 입력하면 섭씨로, \n 문자를 C,c로 입력하면 화씨로 변환합니다\n");
    printf("문자 입력: ");
    scanf("%c", &cel);
    
    double temp;
    printf("온도 입력: ");
    scanf("%lf", &temp);

    if (cel == 'F' || cel == 'f')
        printf("화씨온도 %.2lf는 섭씨온도로 %.2lf입니다.", temp, (5.0 / 9) * (temp - 32));
    else if (cel == 'C' || cel == 'c')
        printf("섭씨온도 %.2lf는 화씨온도로 %.2lf입니다.", temp, (9.0 / 5) * temp + 32);

    return 0;
}

 

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

8장 배열 연습문제  (0) 2021.12.30
7장 연습문제  (0) 2021.12.29
5장 연습문제  (0) 2021.12.28
chapter 07 내용점검 연습 04번  (0) 2021.12.27
3장 연습문제와 형식지정자  (0) 2021.12.24
Comments