1 条题解
-
1
需要注意的几个点:
- 当输入出现混合情况,尤其是字符的时候,需要根据情况分析,是否需要加空格,例如本题目中,输入为
a b +
,其中加号前面有空格,需要缓冲掉,使用scanf("%d%d %c",&a,&b,&c);
否则会将空格赋值给变量c。 - 输出格式为运算表达式的中缀形式以及向零取整的结果,中间用空格隔开。
- ,需要开 long long.
C语言
#include<stdio.h> int main() { int a,b; char c; scanf("%d%d %c",&a,&b,&c); switch (c) { case '+':printf("%d + %d = %d",a,b,a+b); break; case '-':printf("%d - %d = %d",a,b,a-b); break; case '*':printf("%d * %d = %lld",a,b,(long long)a*b); break; case '/': if(b==0) printf("%d / %d = Divided by zero!",a,b); else printf("%d / %d = %d",a,b,a/b); break; default:printf("%d %c %d = Invalid operator!", a, c, b); } return 0; }
C++
可以考虑先输出中缀表达式后接
=
的内容,之后在输出结果,这样不容易出错。#include <bits/stdc++.h> using namespace std; typedef long long ll; const int N = 1e6 + 10, INF = 0x3f3f3f3f; int main() { int a, b; char c; cin>>a>>b>>c; cout<<a<<" "<<c<<" "<<b<<" = "; if (c == '+') cout<<a+b<<endl; else if (c == '-') cout<<a-b<<endl; else if (c == '*')cout<<1ll*a*b<<endl; else if (c == '/') { if (b == 0) cout<<"Divided by zero!\n"; else cout<<a/b<<endl; } else { cout<<"Invalid operator!\n"; } return 0; }
Java
import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); long a = sc.nextLong(); long b = sc.nextLong(); char c = sc.next().charAt(0); switch(c){ case '+': System.out.println(a + " + " + b + " = " + (a+b)); break; case '-': System.out.println(a + " - " + b + " = " + (a-b)); break; case '*': System.out.println(a + " * " + b + " = " + (a*b)); break; case '/': if(b == 0){ System.out.println(a + " / " + b + " = " + "Divided by zero!"); }else{ System.out.println(a + " / " + b + " = " + (a/b)); } break; default: System.out.println(a + " "+c+" " + b + " = " + "Invalid operator!"); break; } } }
- 当输入出现混合情况,尤其是字符的时候,需要根据情况分析,是否需要加空格,例如本题目中,输入为
- 1
信息
- ID
- 50
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- 递交数
- 811
- 已通过
- 129
- 上传者