ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [C Language] 8. 사칙 연산자와 나머지 연산자 - C 언어
    CSE/C Language 2015. 6. 13. 10:06

    1. 사칙연산자의 종류

     +, -, *, /


     abc = 5 + 17;     // 22

     def = 10 - 2;      // 8

     ghi = 11 * 6;      // 66

     jkl = 60 / 3;       // 20



    2. 주의사항

     - 정수 나누기 정수는 정수이다.

     - 0으로 나눌 수 없다.

     

      수학에서는 5 / 2에 대한 답은 당연히 2.5가 되지만, C에서는 2가 된다. 정수가 아니라 실수이기 때문에 소수점 이하를 저장할 수 없다.

      2.5라는 값을 출력하기 위해서는 다음과 같이 사용해야 한다.

      

       1. 5.0 / 2.0

       2. 5.0 / 2

       3. 5 / 2.0

       4. 5. / 2.


     아래 예제를 통해 위 연산을 직접 실행해보자.



    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
    /*
     * float.c
     *
     *  Created on: 2015. 5. 11.
     *      Author: root
     */
     
    #include <stdio.h>
     
    #define PRINTF(a, b) printf(#a" / "#b" = %.1f\n", a / b)
    #define PRINTD(a, b) printf(#a" / "#b" = %d\n", a / b)
     
    int main(void) {
     
        PRINTF(5.02.0);
        PRINTF(5.02);
        PRINTF(52.0);
        PRINTF(5.2.);
        PRINTF(52);
        puts("");
     
        PRINTD(5.02.0);
        PRINTD(5.02);
        PRINTD(52.0);
        PRINTD(5.2.);
        PRINTD(52);
     
        return 0;
    }
    cs





     




    3. 나머지 연산자(%)

     - 숫자를 나누면 몫과 나머지를 얻을 수 있다. 

      

      5 % 4      결과값: 1

      7 % 3      결과값: 1

      10 % 7    결과값: 3


     - 나머지 연산자에서 조심할 것은 부동소수와 결합하여 사용할 수 없다는 것이다. (ex: 5.7 / 4 X)


     예제를 통해 나머지 연산자를 살펴보도록 하자.



    - 10 글자마다 자동 개행 추가

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    /*
     * mod.c
     *
     *  Created on: 2015. 5. 11.
     *      Author: root
     */
     
    #include <stdio.h>
     
    int main(void) {
     
        int i;
     
        for (i = 0; i < 26; i++) {
            printf("%c "'a' + i);
     
            if (((i + 1) % 10== 0)
                putchar('\n');
        }
     
        return 0;
    }
    cs









    - 초 입력을 통한 시, 분, 초 구하기


    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
    /*
     * mod2.c
     *
     *  Created on: 2015. 5. 11.
     *      Author: root
     */
     
    #include <stdio.h>
     
    #define MIN 60
    #define HOUR 3600
     
    int main(void) {
     
        int seconds;
        int hours, minutes;
        int min_left, sec_left;
     
        printf("Input seconds(< 86400): ");
        scanf("%d", &seconds);
     
        hours = seconds / HOUR;
        minutes = seconds / MIN;
     
        min_left = minutes % MIN;
        sec_left = seconds % MIN;
     
        printf("%d seconds is %d:%d:%d", seconds, hours, min_left, sec_left);
     
        return 0;
    }
    cs








    - 입력 범위 내의 7의 배수 구하기


    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
    /*
     * mod3.c
     *
     *  Created on: 2015. 5. 11.
     *      Author: root
     */
     
    #include <stdio.h>
     
    #define MULTIPLE 7
     
    int main(void ) {
     
        int i;
        int num;
     
        puts("Input number between 1 to 100.");
        scanf("%d", &num);
     
        for (i = 1; i < num; i++) {
            if ((i % MULTIPLE) == 0)
                printf("%d\n", i);
        }
     
        return 0;
    }
    cs





    * Programming in C 서적을 참고하여 작성하였습니다 


    댓글

Designed by Tistory.