본문 바로가기
쿤즈 Dev/C

[C언어 문제] 두 수의 나눗셈. 몫과 나머지 구하기

by :)Koon 2021. 4. 13.

여러 가지 데이터를 변수에 담아서 출력하고 계산하는 문제까지 해결해 보았습니다.

이번 포스팅에서는 두 수의 나눗셈을 이용해서 몫과 나머지를 구하는 연산을 해보도록 하겠습니다.


C언어 문제. 두 수의 몫과 나머지 구하기

화면에 다음과 같이 출력되도록 프로그래밍하시오.

피제수(나누어지는 수) : 26
제수(나누는 수) : 5
몫 : 5
나머지 : 1

조건 1. 두 수는 키보드로부터 입력받도록 합니다.

조건 2. 두 수는 정수를 입력받도록 합니다.

 

* 프로그래밍 의도

데이터 타입에 맞게 변수를 설정할 수 있는가?

키보드로부터 숫자를 입력받는 함수를 사용할 수 있는가?

몫과 나머지를 구하는 연산자를 사용할 수 있는가?

 

* 문제 해결을 위한 글

2020.08.02 - [쿤즈 Dev/C] - [C언어] 변수 (Variables) vs 상수 (Constraints)

2020.08.07 - [쿤즈 Dev/C] - [C언어] 연산자의 종류에 대해서 알아보자

2020.08.06 - [쿤즈 Dev/C] - [C언어] 표준입력 표준출력 사용하기 (첫 프로그래밍 시작!)

2020.08.04 - [쿤즈 Dev/C] - [C언어] 데이터 타입(Data Types) 과 함께 변수 선언하기

 


C언어 문제 풀이

작성된 프로그래밍은 정답이 아닙니다. 프로그래밍 소스에 대해 정답은 없습니다. 다양한 방법으로 프로그래밍이 가능하며 한 가지 예일뿐입니다.

소스코드 1. divide.c

#include <stdio.h>

int main() {
    int dividend, divisor, quotient,remainder;
    
    printf("피제수(나누어 지는 수): ");
    scanf("%d", &dividend);
    printf("제수(나누는 수): ");
    scanf("%d", &divisor);
    
    quotient = dividend / divisor;
    remainder = dividend % divisor;
    
    printf("몫: %d\n", quotient);
    printf("나머지: %d\n", remainder);
    

    return 0;
}

* 프로그래밍 의도 파악

데이터 타입에 맞게 변수를 설정할 수 있는가?

변수를 설정하기 위해서는 어떤 수를 입력받을지 정해야 합니다. C언어는 입력받는 값에 따라서 자료형을 지정해야 하기 때문이죠. 위 소스에서는 모두 정수형 데이터 타입인 int로 모든 변수를 선언했습니다.

 

키보드로부터 숫자를 입력받는 함수를 사용할 수 있는가?

키보드로부터 숫자를 입력받기 위해서는 scanf() 함수를 사용해야 합니다. Windows의 경우에는 오류가 발생하게 되는 부분 중 하나입니다. 이는 보안 취약점으로 scanf_s()와 같은 대체 함수를 사용해야 합니다. 이 부분은 아래 글에서 확인하실 수 있습니다.

2020.08.06 - [쿤즈 Dev/C] - [C언어] 표준입력 표준출력 사용하기 (첫 프로그래밍 시작!)

 

몫과 나머지를 구하는 연산자를 사용할 수 있는가?

연산자 중에서 산술 연산자들이 있습니다. 우리가 알고 있는 사칙 연산자들이 모두 산술 연사자입니다. 그중에서 특이한 연산자 중 하나가 바로 나머지를 구하는 연산자입니다.

 

나머지 연산자가 필요한 이유는 대표적인 예로 홀수, 짝수를 구할 수 있기 때문입니다. 특정 조건에서 홀수 혹은 짝수만을 처리하고 싶을 때 나머지 연산자를 활용하여 분기시킬 수 있습니다. 나머지 연산자는 % 기호로 나타냅니다.


나머지 연산자를 사용하는 방법에 대해서 알아보는 문제였습니다. 프로그래밍에서는 어떤 특정 조건을 만들어 나가고 그 조건에 따라 분기 또는 반복하는 작업들을 많이 하게 됩니다. 이런 부분들에서 많이 사용할 수 있는 대표적인 예 중에 하나입니다. 도움이 되셨으면 합니다. 이상입니다.

 

댓글