언어 자료구조 알고리즘/디딤돌 C언어

[디딤돌 C언어] 29. 산술 연산자

언제나휴일 2016. 1. 1. 12:02
반응형

 [디딤돌 C언어] 29. 산술 연산자



프로그래밍 언어는 관리해야 할 데이터를 위한 문법도 제공하지만 수행해야  할 코드를 작성하는 문법도 제공하죠.
이번에는 C언어에서 수행할 코드를 작성하는 가장 기본적인 문법인 연산자를 다룰게요.
 
C언어에서는 사칙 연산이나 논리 연산, 비트 연산을 비롯하여 30여 가지의 연산자를 제공하고 있어요.
여러분은 책에 나온 예제 코드를 직접 작성하여 하나 하나 확인하세요.
프로그래밍은 머리로 이해하는 것으로 그치면 실력이 늘지 않아요.
이해한 것을 직접 프로그램으로 작성하면서 몸으로 숙련시키세요.  
 
가장 먼저 산술 연산자를 살펴봅시다.
 
C언어의 산술 연산자는 부호 연산자와 사칙 연산자, 나머지 연산자를 제공하고 있어요.
 
1. 부호 연산자
+, -
 
부호 연산자는 피 연산자가 하나인 단항 연산자예요.
+ 부호 연산의 연산 결과는 피 연산자 값이어서 표시하지 않은 것과 결과가 같아서 거의 사용하지 않아요.
그리고 - 부호 연산자는 피 연산자의 값에 -1을 곱한 값이 연산 결과예요.
 
◈ 부호 연산자
#include <stdio.h>
int main()
{
    printf("%d %d \n", +5, -5);
    return 0;
}

실행 결과
5 -5
 
2. 사칙 연산자  
 +, -, *, /
 
사칙 연산은 두 개의 피 연산자가 오는 이항 연산자죠.
만약 두 개의 피 연산자가 모두 정수형이면 연산 결과는 정수예요.
하지만 피 연산자 중에 하나라도 실수형이 오면 연산 결과는 실수라는 것을 기억하세요.
 
특히 C언어에서 나누기 연산은 나머지 값을 버리는 내림 법칙을 사용해요.
그리고 나머지 연산의 우항이 0이면 나누기 연산을 할 수 없어 예외가 발생하죠.
이러한 예외를 흔히 divide zero라고 불러요.
 
◈ 사칙 연산
#include <stdio.h>
int main()
{
    printf("%d \n", 2+3);
    printf("%f \n", 2+3.0f);
    printf("%f \n", 2.0f+3.0f);
    printf("%d \n", 8/3);
    return 0;
}

실행 결과
5
5.000000
5.000000
2


3. 나머지 연산자  
%
 
나머지 연산은 피연산자로 정수가 와야 하며 연산 결과는 나눈 나머지예요.
좌항의 값이 양수일 때는 언제나 연산 결과는 0 이상이고 음수일 때는 0 이하예요.
 
◈ 나머지 연산
#include <stdio.h>
int main()
{
    printf("7 3으로 나눈 나머지: %d \n",7%3);
    printf("7 -3으로 나눈 나머지 %d \n",7%-3);
    printf("-7 3으로 나눈 나머지 %d \n",-7%3);
    printf("-7 -3으로 나눈 나머지 %d \n",-7%-3);
    return 0;
}
실행 결과
73으로 나눈 나머지: 1
7-3으로 나눈 나머지: 1
-73으로 나눈 나머지: -1
-73으로 나눈 나머지: -1
 
 
◈ 기본 연습
1. 두 개의 정수를 입력받아 합, , , 몫을 출력하는 프로그램을 작성하세요.
 
2. 두 개의 실수를 입력받아 합, , , 몫을 출력하는 프로그램을 작성하세요.
 
3. 한 개의 정수와 한 개의 실수를 입력받아 합, , , 몫을 출력하는 프로그램을 작성하세요.
 
4. 다음 프로그램의 출력 결과를 예측하고 출력 결과를 확인하시오. 그리고 출력 결과가 서로 다른 이유를 설명하시오.
#include <stdio.h>
int main()
{
    printf("%d \n", 3*2/3);
    printf("%d \n", 2/3*3);
    return 0;
}

5. 두 개의 정수를 입력받아 나머지를 출력하는 프로그램을 작성하세요.


관련 게시글

[C언어 무료 동영상 강의] 29. 산술 연산자

[정답] 디딤돌 C언어 29. 산술 연산자


사용한 함수

printf 함수 [C언어 표준 라이브러리 함수 가이드]







반응형