본문 바로가기

스터디/코딩

[ 코딩 도장 : C ] Unit 8. 실수 자료형 사용하기 : 연습문제 / 심사문제

8.6 연습문제 : 실수형 변수 선언하기

문제) 다음 소스 코드를 완성하여 1.970000 5.524218 37928000.000000이 출력되게 만드세요.

#include <stdio.h>

int main()
{
    float num1 = 1.97f;
    long double num2 = 5.524218l;
    double num3 = 3792.8e+4;

    printf("%f %Lf %f\n", num1, num2, num3);

    return 0;
}

 

 

8.7 연습문제 : 자료형 크기 구하기

문제) 다음 소스 코드를 완성하여 자료형의 크기가 8과 4로 출력되게 만드세요.

#include <stdio.h>

int main()
{
    double num1 = 0.4284;
    float num2 = 2.7f;

    printf("num1의 크기: %d, num2의 크기: %d\n", sizeof(num1), sizeof(num2));

    return 0;
}

 

 

8.8 연습문제 : 최솟값과 최댓값 표현하기

문제) 다음 소스 코드를 완성하여 실수 자료형의 최솟값과 최댓값이 출력되게 만드세요(Visual Studio, Windows).

#include <stdio.h>
#include <float.h>

int main()
{
    float num1 = FLT_MAX;
    double num2 = DBL_MIN;
    long double num3 = LDBL_MAX;
    printf("%.2f\n", num1);
    printf("%e\n", num2);
    printf("%Le\n", num3);

    return 0;
}

 

 

8.9 연습문제 : 언더플로우

문제) 다음 소스 코드를 완성하여 0.000000e+00이 출력되게 만드세요

#include <stdio.h>
#include <float.h>

int main()
{
    float num1 = FLT_MIN;

    num1 = num1 / 100000000.0f;

    printf("%e\n", num1);

    return 0;
}

 

 

8.10 심사문제 : 실수형 변수 선언과 자료형 크기 구하기

문제) 다음 소스 코드를 완성하여 1.800000 2.900000 3.700000과 4 8이 출력되게 만드세요.

#include <stdio.h>

int main()
{
    float num1 = 1.8f;
    double num2 = 2.9;
    long double num3 = 3.7l;

    printf("%f %f %Lf\n", num1, num2, num3);
    printf("%d %d\n", sizeof(num1), sizeof(num2));

    return 0;
}

 

 

8.11 심사문제 : 최솟값과 최댓값 표현하기

문제) 다음 소스 코드를 완성하여 각 실수 자료형의 최솟값과 최댓값이 출력되게 만드세요.

#include <stdio.h>
#include <float.h>

int main()
{
    double doubleMin;
    double doubleMax;
    long double longDoubleMin;
    long double longDoubleMax;

    doubleMin = DBL_MIN;
    doubleMax = DBL_MAX;
    longDoubleMin = LDBL_MIN;
    longDoubleMax = LDBL_MAX;

    printf("%e %e\n", doubleMin, doubleMax);
    printf("%Le %Le\n", longDoubleMin, longDoubleMax);

    return 0;
}

 

8.12 심사문제 : 오버플로우

문제) 다음 소스 코드를 완성하여 -inf가 출력되게 만드세요

#include <stdio.h>
#include <float.h>

int main()
{
    float num1 = -FLT_MAX;

    num1 = num1 * 1000.0f;

    printf("%f\n", num1);

    return 0;
}

 

>> 이번 Unit8도...Unit7과..비슷한 느낌...😢