728x90

문제1. (함수 작성+포인터) swap 함수 만들기 (Call by Reference) -코드업-

codeup.kr/problem.php?id=1581

 

(함수 작성+포인터) swap 함수 만들기 (Call by Reference)

$2$개의 정수 $a$, $b$가 공백으로 분리되어 입력된다.($-1,000,000 <= a, b <= 1,000,000$)

codeup.kr

#include <stdio.h>
// 이 부분에 들어가야 될 코드를 작성하여 제출
main()
{
    int a, b;
    scanf("%d%d", &a, &b);
    myswap(&a, &b);
    printf("%d %d", a, b);
}

- 중요 키워드는 포인터 a와 b에 비교 인것 같다.

- swap에 대한 사용 방법인거 같다.

 

우선 swap를 찾아보았다.

참고한 사이트는 blog.naver.com/PostView.nhn?blogId=lyw94k&logNo=220847883516&proxyReferer=https:%2F%2Fwww.google.com%2F

 

swap를 사용해 비교만 하면 문제를 해결할 수 있다.

코드는

- swap 방식을 사용해서 풀었다. 

- 정수형 포인터 a와 b를 조건식 에서 (*a > *b)일때 swap하는 코드를 짜보았다.

 


 

문제2. (포인터) 부분 문자열 -코드업-

codeup.kr/problem.php?id=1810

 

(포인터) 부분 문자열

어떤 문자열에서 부분문자열을 추출하여 출력하는 프로그램을 작성하시오. 단 배열 대신 동적메모리 할당방법을 사용하시오. 이 문제는 배열을 이용하여 풀 수 없습니다. 포인터(*)를 사용하시

codeup.kr

- 문자열을 입력 받는다. char 문자열로 100자 미만을 주면 될거 같다.

- 만약 abcdefg를 첫번째 입력으로 하고, 두 번째 입력으로 1 3을 할경우 어떻게 문자열이 입력 받은 정수로 구분 해서 출력할지 고민해봐야 겠다.

 

코드를 짜보았다.


 

문제3. 35.7 심사문제: 두 정수의 합 구하기 -코딩도장 심사문제-

dojang.io/mod/quiz/view.php?id=283

- malloc을 사용해서 동적 할당을 해주면되는 문제인거 같다.

 

코드를 짜보자.

- 빈칸에 들어갈 코드는 정수형 포인터를 메모리에 동적 선언하는 것이다.

 


 

문제 4. 동적 메모리 할당을 사용하여 숫자를 입력 받아 합산하기 - Do it C언어 문제 -

 

조건

- 사용자가 입력한 개수만큼 정수를 저장할 수 있는 메모리 할당, 

- 중간에 9999를 누르면 종료함

 

#include <stdio.h>
#include <stdlib.h>

voin main()
{

    int *pNum, count = 0, sum = 0, li = 0, i; // 정수형 포인트 변수와 합을 구할 변수를 선언
    
    printf("할당 최대 개수를 입력 : ");
    
    scanf("%d", &li);
    
    pnum = (int *)malloc(sizeof(int)*li);
    
    while(count < li) {
    	printf("(9999를 입력하면 종료) 숫자를 입력하세요. : ");
        scanf("%d", pNum + count);
        if(*(pNum + count) == 9999) break;  // 9999에서 멈춤
        count++; // 입력한 횟수 계산
}

for(i = 0; i < count; i++) {
	if(i > 0) printf(" + ");  // +(플러스) 문자를 출력
    printf("%d, *(pNum + i));  // 입력한 숫자 출력
    sum = sum + *(pNum + i); // 입력 숫자 합산
}
printf(" = %d\n", sum);  // 변수 합산 출력
free(pNum);  //메모리 할당 해제
}
728x90

'프로그래밍 > C 문제 100' 카테고리의 다른 글

문제2. 3 6 9 게임의 왕이 되자!  (0) 2021.02.28
문제1 . 주사위를 2개 던지면?  (0) 2021.02.28
728x90

포인터를 사용해서 변수의 메모리 주소를 저장해왔다. 

 

그렇다면 포인터에 원하는 만큼 메모리 공간을 할당해 주는 방법은 없을까?

 

malloc와 free를 사용하면 메모리에 원하는 만큼 공간을 할당 받을 수 있다.

 

malloc? free? 이게 무슨 말일까?

 

malloc는 "memory allocation"으로 메모리 할당이라는 함수이다.

 

free는 할당해주었던 것을 끝내는 함수이다.

 

직접 코딩해보자.

- #include <stdlib.h>는 malloc, free 함수가 선언된 헤더 파일이다.

- numPtr2 포인터는 malloc(sizeof(int))로 동적 메모리 할당을 해주는 부분이다. sizeof 연산자를 사용하면 int의 크기 만큼 할당 해줄 수 있다.

- %p numPtr1, numPtr2로 할당된 메모리 주소를 출력한다.

- free(numPtr2)는 free 함수를 사용해 해당 포인터 numPtr2 동적 메모리 해제를 하는 부분이다.

* 동적 메모리 할당을 했다면 반드시 free로 해제 해줘야한다.

 

결과는

 

그렇다면 동적으로 할당한 메모리에 값을 저장하려면 어떻게 해야할까?

 

아주 쉽다.

    int *numPtr2;    // int형 포인터 선언

    numPtr2 = malloc(sizeof(int));    // int의 크기 4바이트만큼 동적 메모리 할당

    *numPtr2 = 10;   // 포인터를 역참조한 뒤 값 할당

    printf("%d\n", *numPtr2);    // 10: 포인터를 역참조하여 메모리에 저장된 값 출력
    
    free(numPtr2); 

- 먼저 malloc 함수로 동적 메모리 할당을 해준 뒤

- 포인터에 역참조로 값을 할당 해주면 된다.

728x90
728x90

포인터에 포인터를 선언할 수 있을까 하는 의문점으로 

 

이중 포인터에 대해 알아보자

 

포인터에 변수의 메모리 주소를 저장한다면, 포인터에 주소도 포인터에 저장할 수 있을까?

 

이중포인터가 바로 위에 질문에 답이다.

 

포인터도 포인터로 감쌀 수 있다.

- **을 사용해서 이중 포인터를 사용하면

- 역참조를 2번 진행해서 num1 변수 메모리 주소에서 값을 가져온다.

728x90
728x90

포인터를 이용해서 역참조 연산자를 사용해보자

 

우리는 전에 포인터를 사용하는 방법을 배웠다.

 

다시 이야기하면 변수의 메모리주소를 불러올 수 있다는 것이다.

 

그렇다면 포인터를 이용해서 변수의 값을 가져와 보자!

 

- %d를 사용한 이유는 정수형으로 값을 출력하기 때문이다. 

- 포인터 변수 앞에 *을 붙여서 출력하면, 포인터가 가리키는 변수의 메모리 주소에 저장된 값을 가져온다.

 

그림으로 보면

포인터 변수 앞에 *(에스더리스크)을 붙이는 것을 역참조 연산자라고 부른다.

 

그렇다면 

 

이것을 이용해 num1에 값을 변경해보자

- *numPtr은 num1 변수 메모리 주소에 저장된 값을 가리키는데 이때 =으로 값을 저장하면

- num1 변수 메모리 주소에 저장된 값이 20으로 변경이 된다.

- 출력시 num1을 출력해보면 20이라는 결과가 나온다.

 

그림으로 간단하게 설명하면

- 우리는 이미 num1의 메모리 주소를 numPtr에 저장했다.

- 그리고 *numPtr을 사용해서 num1의 메모리주소에 저장된 값을 가리키며 =을 사용해 20이라는 값을 num1 메모리 주소에 저장했다.(역참조 연산자 사용)

 

 

728x90
728x90

우리는 지금까지 배워온 변수를 지정하는 방법은 아래 코드와 같이 변수를 지정해 줬다.

int a = 10;

그렇다면 이 변수는 어디에 저장이 될까?

 

메모리에 대해 깊게 다른 컨텐츠로 다루겠지만 포인터 부분에서 메모리에 대해 간단하게 알고 가야한다.

 

그 이유는

 

포인터에 대한 이해가 메모리 부분에서 어렵기 때문이다.

 

다시 본론으로..

 

우리가 변수를 지정하면 변수는 메모리에 일정 공간을 확보하고 그곳에서 원하는 값을 저장하고 불러오는 방식이다.

 

그렇다면

 

도대체 메모리 어느부분에 저장이 되는지 어디서 불러오는지 궁금증이 생길것이다.

 

아래 코드를 사용해서 메모리에 할당된 변수 메모리 주소를 확인할 수 있다.

- %p 서식 지정자를 사용하 16진수로 출력하고, & 주소 연산자를 변수 앞에 사용하면 변수의 메모리 주소를 16진수로 확인 할 수 있다. 

우리는 변수가 저장된 메모리 주소를 출력해 보았다.

 

 

이번에는 포인터 변수를 선언해보자

 

포인터 변수는 쉽게 설명하면 변수가 메모리 주소에 할당 되고 포인터 변수가 그 메모리 주소를 가리키는 것이다.

그림과 같이 numPtr 포인터 변수가 변수 num1의 메모리 주소를 가리키게 되는 방식이다.

 

그림이 이해가 안간다면 코드로 보자

출력을 하면 위 그림과 같이 같은 메모리 주소 16진수 값이 나온다.

 

코드를 해석해 보면

- 포인터 변수를 선언해줄때는 *(애스터리스크)를 자료형 뒤에 붙여준다.

- 포인터 변수를 선언 후 &가 붙은 변수의 메모리 주소를 포인터 변수에 저장한다.

- 포인터와 num1의 메모리 주소는 같다는 의미이다.

 

728x90
728x90

3 6 9 게임을 하면서 진짜 못하는 사람들이 있다.

 

이런 사람들을 위해서

문제가 출제 된거 같다..

3 6 9 게임을 하던 영일이는 3 6 9 게임에서 잦은 실수로 계속해서 벌칙을 받게 되었다.
3 6 9 게임의 왕이 되기 위한 마스터 프로그램을 작성해 보자.

참고
중첩의 원리
반복 실행 구조 안에 선택 실행 구조를 자유롭게 중첩할 수 있다.

3과 6과 9가 나온경우 X를 출력하는 문제이다.

 

중첩을 사용하면 쉽게 문제를 해결할 수 있다. 코드로 보자

 

- 정수형 n을 입력받아

- for 반복문에서 i에 값을 1로 초기화해주고 i가 입력받은 n의 값보다 작거나 같다면

- if 조건문으로 넘어가서 반복문 i값이 1인데 3또는 6또는 9와 같은지 조건으로 거른다 같지 않다면

- else printf로 i값을 출력해준다.

- 만약 n 입력을 3으로 출력할 경우 i가 3이 되고 4가 되기전까지 반복한다. i가 3인경우 if 조건문에서 3과 같기 때문에 

- 같을 경우  X를 출력하여 1 2 X를 출력하게 된다.

 

단순하지만 생각을 할 수 있는 문제라서 재미있게 느껴졌다. 

728x90

'프로그래밍 > C 문제 100' 카테고리의 다른 글

3주차. 포인터 1~5문제 Write-up  (0) 2021.03.08
문제1 . 주사위를 2개 던지면?  (0) 2021.02.28
728x90

멀고 험난했다. 

 

쓸데 없는 말은 삼가하고 문제를 풀어보자

 

난 어떤 언어든 주사위 문제를 좋아한다.

 

주사위라는 실제 물건을 보았기 때문인지 아마도 더 생각하는데 도움이되는거 같기도 하다.

 

일단 문제 해석을 해보자

 

문제를 보고도 어떤 목적에 문제인지 이해를 못하면 끝이다 끝.

 

문제1. 주사위를 2개 던지면?

1부터 n까지, 1부터 m까지 숫자가 적힌
서로 다른 주사위 2개를 던졌을 때 나올 수 있는 모든 경우를 출력해보자.

참고
중첩의 원리...
반복 실행 구조도 조건 실행 구조와 마찬가지로 중첩의 원리가 적용된다.
반복 실행 구조를 중첩하면 원하는 반복 구조를 다양하게 만들어 낼 수 있다.

숫자를 n과 m으로 입력받아 주사위에 최대값이 라고 하고 1부터 입력받은 최대값 주사위를 굴렸을때 나올 수 있는 경우의 수를 모두 출력하면 된다.

 

어렵게 생각하지말자 단순하다 내가 3과 4라는 숫자를 입력했을때 

 

결과로

 

1 1

1 2

1 3

1 4

2 1

2 2

2 3

2 4

3 1

3 2

3 3

3 4

 

이라는 숫자가 출력되면 끝이다.

 

그런데 친절하게도 어떤 원리를 이용하면 되는지?

 

- 중첩의 원리

 

라고 나와있다. 중첩의 원리는 주로 조건문에서 자주 등장하는데 반복문으로 사용할 수 있다.

 

일단 짜본 코드를 보자

 

- 정수형 n과 m을 만들어주고

- n과 m은 scanf를 사용해 입력받는 변수로 사용한다.

- 예시에서 나온거 처럼 반복 실행 구조를 중첩하여 사용하면 되는데

- 첫번째 반복구조에서 i를 1로 초기화, i가 n보다 작거나 같은지, 작거나 같다면 i 값에 코드 마지막에 1을 추가한다.

- 두번째 반복구조에서 j를 1로 초기화, j가 n보다 작거나 같은지, 작거나 같다면 j 값에 코드 마지막에 1을 추가한다.

- 그리고 그 i와 j에 값을 출력한다.

 

쉽게 설명하면 우리가 2와3을 입력하면 첫번째 반복구조에서 i가 1인데 입력값(n) 2보다 작기때문에 두번째 반복구조로 넘어간다. 두번째 반복구조에서도 j가 1인데 입력값(m) 3보다 작기때문에 출력으로 간다.

 

그렇기 때문에 i와 j를 출력할 경우 1, 1이 출력되고, j값이 1이 추가된 2로써 다시 두번째 반복문을 거져 1, 2가 출력된다. 1, 3까지는 출력이 조건상 같기 때문에 출력되지만 j값이 4가 된다면 조건보다 크기 때문에 다시 첫번째 반복문으로 돌아간다. 그리하여 i값은 1이 추가된 2로 진행한다. 이러한 반복으로 첫번째 반복문이 끝나면 모든 조건은 끝이나게 된다.

728x90

'프로그래밍 > C 문제 100' 카테고리의 다른 글

3주차. 포인터 1~5문제 Write-up  (0) 2021.03.08
문제2. 3 6 9 게임의 왕이 되자!  (0) 2021.02.28
728x90

상수에 대해서 알고 있는가? 김상수

 

나는 상수에 대해 고등학교에서 배운 정의 밖에 몰랐다.

 

상수는 변하지 않는 값을 뜻한다. 변수를 선언해 보았기 때문에 알고 있다. 변수는 한 번 선언하고 값을 변경할 수 있지만 상수는 처음 선언할 때 값 고정이기 때문에 변하지 않는 값을 뜻한다.

 

상수를 사용해보자!

#include <stdio.h>

int main()
{
    const int con1 = 1;         // 상수. 선언과 동시에 초기화
    const float con2 = 0.1f;    // 상수. 선언과 동시에 초기화
    const char con3 = 'a';      // 상수. 선언과 동시에 초기화

    printf("%d %f %c\n", con1, con2, con3);    // 1 0.100000 a

    return 0;
}

 

 

728x90

'프로그래밍 > C 기본문법' 카테고리의 다른 글

UNIT34.2 역참조 연산자  (0) 2021.03.08
UNIT 34. 포인터 사용하기  (0) 2021.03.07
UNIT 9. 문자 자료형 사용하기  (0) 2021.02.20
UNIT. 8 실수 자료형  (0) 2021.02.20
UNIT 7. 정수 자료형  (0) 2021.02.19
728x90

정수, 실수 자료형에 대해서 공부해보았다.

 

그렇다면

 

이제 무엇을 할 차례일까

 

바로바로 문자 자료형이다. 

 

정수, 실수, 문자로 이루어져 있기 때문에 기억해보자

 

C언어에서는 정수 자료형인 char을 이용해서 문자 한 개를 저장한다.

 

char에 문자를 저장할 때는 문자 자체가 아니라 문자에 해당되는 정수값을 저장한다.

 

어려울게 없다. 문자에는 각각 해당하는 정수값이 있는데 이것을 아스키코드라고 부른다.

 

우리는 먼 훗날 아스키코드를 보면서 시스템보안을 다루는 날이 올것이다.

 

 

char을 사용해보자

char c1 = 'team';

- char로 문자는 ' '(작은따옴표)로 묶어서 표현한다.

- ' '(작은따옴표)는 문자 하나만 묶을 수 있으며 두 개 이상은 묶을 수 없다.

 

 

문자 자료형을 선언하고 출력해보자!

 char c1 = 'a';    // 문자 변수를 선언하고 문자 a를 저장
 char c2 = 'b';    // 문자 변수를 선언하고 문자 b를 저장
 
    // char를 %c로 출력하면 문자가 출력되고, %d로 출력하면 정숫값이 출력됨
    
  printf("%c, %d\n", c1, c1);    // a, 97: a의 ASCII 코드값은 97
  printf("%c, %d\n", c2, c2);    // b, 98: b의 ASCII 코드값은 98
 
  return 0;

- char 변수에 'a', 'b'라는 문자를 각각 c1, c2에 선언, 저장했다.

- 출력을 할 때 %c를 사용하여 문자를 출력하고, %d를 사용하여 정수값을 출력했다.

 

그리고 

 

문자를 넣지 않고 정수만으로 문자 자료형을 사용할 수 있다.

코드를 보자

char c1 = 97;    // a의 ASCII 코드값 97 저장
char c2 = 98;    // b의 ASCII 코드값 98 저장

// char를 %c로 출력하면 문자가 출력되고, %d로 출력하면 정숫값이 출력됨

printf("%c, %d\n", c1, c1); // a, 97
printf("%c, %d\n", c2, c2); // b, 98

return 0;

- 원래 작은따옴표를 사용하여 문자를 저장했지만, char을 사용하여 97이라는 a의 아스키 코드값을 입력하여 저장하면

- 출력했을 때 똑같이 출력이 가능하다.

 

-참고-

char의 크기 및 범위

자료형 크기 범위 비고
char
signed char
1바이트, 8비트 -128~127 문자 저장
unsigned char 1바이트, 8비트 0~255 바이트 단위 데이터 저장

 

10진수, 16진수, 문자 대응표

10진수 16진수 문자 10진수 16진수 문자 10진수 16진수 문자
32 0x20 공백(space) 64 0x40 @ 96 0x60 `
33 0x21 ! 65 0x41 A 97 0x61 a
34 0x22 " 66 0x42 B 98 0x62 b
35 0x23 # 67 0x43 C 99 0x63 c
36 0x24 $ 68 0x44 D 100 0x64 d
37 0x25 % 69 0x45 E 101 0x65 e
38 0x26 & 70 0x46 F 102 0x66 f
39 0x27 ' 71 0x47 G 103 0x67 g
40 0x28 ( 72 0x48 H 104 0x68 h
41 0x29 ) 73 0x49 I 105 0x69 i
42 0x2A * 74 0x4A J 106 0x6A j
43 0x2B + 75 0x4B K 107 0x6B k
44 0x2C , 76 0x4C L 108 0x6C l
45 0x2D - 77 0x4D M 109 0x6D m
46 0x2E . 78 0x4E N 110 0x6E n
47 0x2F / 79 0x4F O 111 0x6F o
48 0x30 0 80 0x50 P 112 0x70 p
49 0x31 1 81 0x51 Q 113 0x71 q
50 0x32 2 82 0x52 R 114 0x72 r
51 0x33 3 83 0x53 S 115 0x73 s
52 0x34 4 84 0x54 T 116 0x74 t
53 0x35 5 85 0x55 U 117 0x75 u
54 0x36 6 86 0x56 V 118 0x76 v
55 0x37 7 87 0x57 W 119 0x77 w
56 0x38 8 88 0x58 X 120 0x78 x
57 0x39 9 89 0x59 Y 121 0x79 y
58 0x3A : 90 0x5A Z 122 0x7A z
59 0x3B ; 91 0x5B [ 123 0x7B {
60 0x3C 92 0x5C \ 124 0x7C |
61 0x3D = 93 0x5D ] 125 0x7D }
62 0x3E 94 0x5E ^ 126 0x7E ~
63 0x3F ? 95 0x5F _      

 

728x90

'프로그래밍 > C 기본문법' 카테고리의 다른 글

UNIT 34. 포인터 사용하기  (0) 2021.03.07
UNIT 10. 상수 사용하기(수정중)  (2) 2021.02.21
UNIT. 8 실수 자료형  (0) 2021.02.20
UNIT 7. 정수 자료형  (0) 2021.02.19
UNIT 5. 변수  (0) 2021.02.18
728x90

저번에는 정수를 변수에 저장해보았다.

 

이번에는 소수점을 표현할 수 있는 실수를 변수에 저장해보자.

float num1 = 0.1f;               // 단정밀도 부동소수점 변수를 선언하고 값을 할당
                                     // float는 숫자 뒤에 f를 붙임

double num2 = 3867.215820;       // 배정밀도 부동소수점 변수를 선언하고 값을 할당
                                     // double은 숫자 뒤에 아무것도 붙이지 않음

long double num3 = 9.327513l;    // 배정밀도 부동소수점 변수를 선언하고 값을 할당
                                     // long double은 숫자 뒤에 l을 붙임

    // float와 double은 %f로 출력, long double은 %Lf로 출력
    printf("%f %f %Lf\n", num1, num2, num3);    // 0.100000 3867.215820 9.327513

- 소수점 변수를 선언하고 값을 저장한다. float num1 = 0.1f;

- float는 숫자 뒤에 f를 붙인다.

- double 소수점 변수를 선언해주고 값을 저장한다. double num2

- long double num3는 앞과 같은 방식이지만, 숫자 마지막에 l을 붙인다.

 

우리는 소수점을사용해서 실수를 저장했다.

* %f: 부동소수점(floating point)의 약어로 f를 사용한다.

  %lf: long floating point에서 point를 제외한 첫 글자를 따서 lf를 사용한다.

 

자료형 크기 범위 유효자릿수 비고
float 4바이트,
32비트
1.175494e-38~3.402823e+38 7 IEEE 754 단정밀도 부동소수점
double 8바이트,
64비트
2.225074e-308~1.797693e+308 16 IEEE 754 배정밀도 부동소수점
long
double
8바이트,
64비트
2.225074e-308~1.797693e+308 16 IEEE 754 배정밀도 부동소수점

 

우리는 추가적으로 지수 표기법에 대해서 알고 넘어가야한다.

 

지수 표기법은 숫자를 사용할때 1231233333333333333333333333333333333333333333333과 같이 길어질때 지수 표기법을 통해서 짧은 숫자와기호를 통해서 컴퓨터에 입력할 수 있다.

 

지수 표기법으로 실수 값을 출력해보자

float num1 = 3.e5f;             // 지수 표기법으로 300000을 표기
                                    // float는 숫자 뒤에 f를 붙임
 
double num2 = -1.3827e-2;       // 지수 표기법으로 -0.013827을 표기
                                    // double은 숫자 뒤에 아무것도 붙이지 않음

long double num3 = 5.21e+9l;    // 지수 표기법으로 5210000000을 표기
                                    // long double은 숫자 뒤에 l을 붙임

 // float와 double은 %f로 출력, long double은 %Lf로 출력
 printf("%f %f %Lf\n", num1, num2, num3); // 300000.000000 -0.013827 5210000000.000000

 // 지수 표기법으로 출력할 때는 float와 double은 %e로 출력, long double은 %Le로 출력
 printf("%e %e %Le\n", num1, num2, num3); // 3.000000e+05 -1.382700e-02 5.210000e+09

- 지수 표기법이라고 해서 변수를 선언하는 방식이 다른것은 아니다.

- 똑같다.

- 지수 표기법(과학적 표기법)은 정수 부분은 한 자리수만 적고, 소수 자릿수 뒤에 e와 지수를 표기한다.

 

 

실수 자료형도 정수 자료형과 마찬가지로 오버플로우, 언더플로우가 발생할 수 있다.

 

오버플로우와 언더플로우를 보자

#include <stdio.h>
#include <float.h>    // 실수 자료형의 양수 최솟값, 최댓값이 정의된 헤더 파일

int main()
{
    float num1 = FLT_MIN;    // float의 양수 최솟값
    float num2 = FLT_MAX;    // float의 양수 최댓값

    // float의 양수 최솟값을 100000000.0으로 나누면 아주 작은 수가 되면서 언더플로우 발생
    num1 = num1 / 100000000.0f;

    // float의 양수 최댓값에 1000.0을 곱하면 저장할 수 있는 범위를 넘어서므로 오버플로우 발생
    num2 = num2 * 1000.0f;

    printf("%e %e\n", num1, num2);    // 0.000000e+00 inf: 실수의 언더플로우는 0
                                      // 오버플로우는 무한대가 됨

    return 0;
}

- include <float.h> 는 실수 자료형의 최소값, 최대값이 정의된 헤더 파일로 코드에서 사용할 수 있게 해준다.

- FLT_MIN;과 MAX;는 각각 최소값과 최대값을 의미한다. 실수형 num1에 최소값을 저장해주고 num2에 최대값을 저장해주는 코드이다.

 

-참고-

서식 지정자 설명
%d 부호 있는 정수
%ld 부호 있는 long 정수
%lld 부호 있는 long long 정수
%u 부호 없는 정수
%lu 부호 없는 long 정수
%llu 부호 없는 long long 정수
%f float, double형 실수
%Lf long double형 실수
%e float, double형 실수를 지수 표기법으로 출력
%Le long double형 실수를 지수 표기법으로 출력
728x90

+ Recent posts