PTA 실습 6-5 간단한 계산기

실험 6-5 간단한 계산기

간단한 계산기의 작업을 시뮬레이션합니다. 계산기가 덧셈, 뺄셈, 곱셈 및 나눗셈만 수행할 수 있다고 가정하면 피연산자와 결과가 모두 정수이고 4개의 연산자는 동일한 우선 순위를 가지며 왼쪽에서 오른쪽으로 순서대로 계산됩니다.

입력 형식:
4연산 공식을 공백 없이 한 줄에 입력하고 피연산자를 하나 이상 입력합니다. 등호 "="를 만나 입력의 끝을 나타냅니다.

출력 형식:
수식의 연산 결과를 한 줄로 출력하거나, 나눗셈 분모가 0이거나 부정 연산자가 있는 경우 오류 메시지 "ERROR"를 출력합니다.

입력 샘플:
1+2*10-10/2=

출력 샘플:
10
아이디어 : 언뜻 보기에 이 질문은 중위 표현식의 평가와 약간 비슷해 보이지만 질문 스템을 주의 깊게 살펴보면 질문에 동일한 우선순위를 요구하는 4개의 연산자가 있음 을 알 수 있습니다. 연산자 우선 순위가 생략됨 판단 과정에서는 하나씩 계산하는 것으로 충분하므로 스택 사용을 절약할 수 있습니다.

#include <math.h>
#include <stdio.h>


int main(){
    
    
    char c;
    int result = 0,opnum; 
    scanf("%d",&result);
    c = getchar();
    while(c!='='){
    
    
        scanf("%d",&opnum);
        if(c == '+')
            result+=opnum;
        else if(c == '-')
            result-=opnum;
        else if(c == '*')
            result*=opnum;
        else if(c == '/')
        {
    
    
            if(opnum == 0){
    
    
                printf("ERROR");
                return 0;
            }else
                result/=opnum;
        }else{
    
    
            printf("ERROR");
                return 0;
        }
        c = getchar();
    }
    printf("%d",result);
    return 0;
}

おすすめ

転載: blog.csdn.net/Kilig___/article/details/128099114