9도 OJ 1116: 가감승제(기초문제)

2334 단어 C 언어OJ9도
시간 제한: 1초
메모리 제한: 32메가바이트
특수 판제: 아니요
제출: 1466
해결 방법: 902
제목 설명:
입력한 연산자에 따라 입력한 정수에 대해 간단한 정수 연산을 진행한다.연산자는 더하기 +, 빼기 -, 곱하기 *, 제/, 구여%, 곱하기!여섯 개의 연산자 중 하나.출력 연산의 결과, 제수가 0이면 "error"를 출력하고, 나머지 연산의 두 번째 연산수가 0이면 "error"를 출력합니다.
입력:
한 줄로 입력합니다.첫 번째 정수를 입력한 다음 연산자를 입력한 다음 두 번째 정수를 입력한 다음 이 입력을 마칩니다.연산자가 곱하기라면!기호는 두 번째 정수를 입력하지 않고 이 입력을 종료합니다.
출력:
여러 그룹의 테스트 데이터가 있을 수 있으며, 각 그룹의 데이터에 대해 한 줄을 출력합니다.입력한 연산자에 따라 계산된 결과나 "error"또는 입력한 두 개 (또는 하나) 수를 출력합니다.
샘플 입력:
12 + 34
54 - 25
3 * 6
45 / 0
5 !
34 % 0

샘플 출력:
46
29
18
error
120
error

팁:
연산은 정형 데이터의 범위를 초과하지 않는다.0!=일;테스트 데이터가 여러 그룹입니다.
출처:
2008년 베이징대학 도형실험실 컴퓨터 연구 생기시험 진제
코드:
#include <stdio.h>
#include <string.h>
 
int main(void)
{
    int a, b;
    char op;
    int result;
 
    while (scanf("%d", &a) != EOF)
    {
        scanf(" %c", &op);
        if (op != '!')
            scanf("%d", &b);
 
        //printf("%c
", op); switch (op) { case '+': printf("%d
", a+b); break; case '-': printf("%d
", a-b); break; case '*': printf("%d
", a*b); break; case '/': if (b == 0) { printf("error
"); break; } printf("%d
", a/b); break; case '%': if (b == 0) { printf("error
"); break; } printf("%d
", a%b); break; case '!': result = 1; for (int i=1; i<=a; i++) result *= i; printf("%d
", result); break; default: break; } } return 0; } /************************************************************** Problem: 1116 User: liangrx06 Language: C Result: Accepted Time:10 ms Memory:912 kb ****************************************************************/

좋은 웹페이지 즐겨찾기