C 언어를 사용한 간단한 계산기 만들기

CBeginner
지금 연습하기

소개

이 프로젝트에서는 C 프로그래밍 언어를 사용하여 간단한 계산기를 만드는 방법을 배웁니다. 이 계산기는 덧셈, 뺄셈, 곱셈, 나눗셈과 같은 기본적인 산술 연산을 수행할 수 있습니다. 또한 사용자 입력의 유효성을 확인하고 입력이 정의되지 않은 동작으로 이어지는 경우를 처리하는 검사도 구현할 것입니다.

👀 미리보기

$ ./Calculator
32+11
=43.000000

$ ./Calculator
41-34.9
=6.100000

$ ./Calculator
10/2
=5.000000

$ ./Calculator
2*4
=8.000000

$ ./Calculator
10%3
=1

🎯 과제

이 프로젝트에서 다음을 배우게 됩니다.

  • scanf()를 사용하여 C 에서 사용자 입력을 받는 방법
  • 입력 산술 표현식의 형식을 확인하는 방법
  • 사용자 입력을 기반으로 산술 계산을 수행하는 방법
  • 0 으로 나누기 오류를 처리하는 방법
  • 정수 피연산자에 대해서만 나머지 연산자를 구현하는 방법

🏆 성과

이 프로젝트를 완료하면 다음을 수행할 수 있습니다.

  • C 에서 사용자 입력을 받는 방법을 이해합니다.
  • C 에서 다양한 산술 연산을 구현합니다.
  • 오류 검사를 수행하고 잘못된 입력을 처리합니다.
  • gcc 컴파일러를 사용하여 C 프로그램을 컴파일하고 실행합니다.

사용자 입력 받기

사용자 입력을 받는 것은 매우 간단하며, C 언어의 형식화된 입출력 함수인 printf()scanf()를 사용할 수 있습니다.

다음은 사용자 입력을 읽는 프로그램 코드입니다.

#include<stdio.h>
int main()
{
   double number1=0.0;     // 첫 번째 피연산자 정의
   double number2=0.0;     // 두 번째 피연산자 정의
   char operation=0;       // 연산자는 '+' '-' '*' '/' 또는 '%'여야 합니다.

   printf("\n계산을 입력하세요\n");
   scanf("%lf%c%lf",&number1,&operation,&number2);

   return 0;
}

형식 확인 및 계산 수행

다음으로 프로그램에서 구현해야 할 기능은 입력 산술 표현식의 형식을 확인하는 것입니다.

가장 기본적인 검사는 입력 표현식에 지정된 연산이 유효한지 확인하는 것입니다. 유효한 연산은 +, -, *, /, %이므로 입력 연산이 이 집합에 속하는지 확인해야 합니다.

또한 연산이 / 또는 %일 때 두 번째 피연산자는 0이 될 수 없다는 점에 유의해야 합니다. 0이면 연산이 유효하지 않습니다.

이러한 검사를 위한 로직은 if 문을 사용하여 구현할 수 있습니다. 또는 switch 문을 사용하면 이를 처리하는 더 좋고 간결한 방법을 제공합니다. 일련의 if 문에 비해 이해하기 쉽고 덜 장황합니다.

switch(operation)
{
    case '+':
        printf("=%lf\n",number1+number2);
        break;

    case '-':
        printf("=%lf\n",number1-number2);
        break;

    case '*':
        printf("=%lf\n",number1*number2);
        break;

    case '/':
        if(number2==0)
            printf("\n\n\aDivision by zero error!\n");
        else
            printf("=%lf\n",number1/number2);
        break;

    case '%':
        if((long)number2==0)
            printf("\n\n\aDivision by zero error!\n");
        else
            printf("=%ld\n",(long)number1%(long)number2);
        break;

    default:
        printf("\n\n\aInvalid operation!\n");
        break;
}

나머지 연산자 %는 정확한 결과를 나타낼 수 있으므로 float 또는 double 유형에 대해 의미가 없습니다. % 연산자는 정수 유형에 적용될 때만 의미가 있습니다. 따라서 이 연산자를 적용하기 전에 피연산자를 정수로 변환해야 합니다. 연산자가 %일 때 두 번째 피연산자는 정수로 변환됩니다. 따라서 두 번째 피연산자가 0인지 여부뿐만 아니라 number2의 값이 long으로 변환될 때 0.인지 여부도 확인하는 것이 중요합니다. 예를 들어, 0.50이 아니지만 정수로 변환하면 0이 됩니다.

파일 컴파일 및 실행

프로그램 파일을 작성한 후, 소스 파일을 컴파일하여 실행 파일을 얻을 수 있습니다. 컴파일을 위한 명령어는 다음과 같습니다.

gcc -o Calculator Calculator.c

참고: 위의 gcc 명령어 형식은 gcc -o output_filename source_filename.c입니다. "output_filename"이 제공되지 않으면 기본 출력 파일 이름은 a.out입니다.

이 시점에서 디렉토리에 Calculator라는 새 파일이 생성된 것을 확인할 수 있습니다. 이것은 소스 파일을 컴파일하고 링크한 후 얻은 실행 파일입니다. 실행하려면 ./Calculator 명령어를 사용하십시오.

./Calculator
$ ./Calculator
32+11
=43.000000

$ ./Calculator
41-34.9
=6.100000

$ ./Calculator
10/2
=5.000000

$ ./Calculator
2*4
=8.000000

$ ./Calculator
10%3
=1

요약

이 프로젝트에서는 C 언어를 사용하여 간단한 계산기를 만들었습니다. 현재 계산기는 기능이 제한되어 있으며 두 개의 피연산자를 사용한 기본적인 계산만 지원합니다. 학생들은 이 계산기를 계속 확장하여 여러 피연산자를 지원하거나 연산자 우선 순위 메커니즘을 도입하는 등의 기능을 추가할 수 있습니다.

✨ 솔루션 확인 및 연습✨ 솔루션 확인 및 연습✨ 솔루션 확인 및 연습