首页 > 试题广场 >

简单计算器

[编程题]简单计算器
  • 热度指数:44475 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
KiKi实现一个简单计算器,实现两个数的“加减乘除”运算,用户从键盘输入算式“操作数1运算符操作数2”,计算并输出表达式的值,如果输入的运算符号不包括在(+、-、*、/)范围内,输出“Invalid operation!”。当运算符为除法运算,即“/”时。如果操作数2等于0.0,则输出“Wrong!Division by zero!”

数据范围:字符串长度满足  ,保证运算符是一个char类型字符。

输入描述:
输入一行字符串,操作数1+运算符+操作数2 (其中合法的运算符包括:+、-、*、/)。


输出描述:
输出为一行。

如果操作数和运算符号均合法,则输出一个表达式,操作数1运算符操作数2=运算结果,各数小数点后均保留4位,数和符号之间没有空格。

如果输入的运算符号不包括在(+、-、*、/)范围内,输出“Invalid operation!”。当运算符为除法运算,即“/”时。

如果操作数2等于0.0,则输出“Wrong!Division by zero!”。
示例1

输入

1.0+3.0

输出

1.0000+3.0000=4.0000
示例2

输入

1.0;4.0

输出

Invalid operation!
示例3

输入

44.0/0.0

输出

Wrong!Division by zero!
头像 viod
发表于 2021-06-02 14:30:33
开始用的float型声明操作数,但是提交后结果如下: 提示有一组测试用例没通过,看了下是因为四舍五入精度问题,于是将操作数声明为double型变量,顺利通过: 代码: #include<stdio.h> int main(){ char op; double op 展开全文
头像 zzfyupup
发表于 2022-05-27 20:30:41
///哇一开始用的是float然后一直只能通过9组测试用例,乘法那边有误,最后改成了double才运行成功,没注意是双精度!!! #include<stdio.h> int main() { double a,b; char c; //flaot add,mul 展开全文
头像 Liu_zy
发表于 2021-11-01 20:03:44
解法一 while True: try: expr = input() for i in expr: if i.isnumeric() or i == '.': pass else 展开全文
头像 计算机红利
发表于 2021-10-12 19:58:30
#include<stdio.h> int main() { double a,b; char ch; while(scanf("%lf %c %lf",&a,&ch,&b)!=EOF) { if(ch=='+'|| 展开全文
头像 大哥~
发表于 2020-03-17 09:34:15
Java输入取值的时候好难啊,就用了判断取值,另外转化的时候不能用float,要用double,不然精度会受影响。 import java.io.IOException; import java.util.Scanner; /* 简单计算器 */ public class _54_SimpleC 展开全文
头像 云梦士
发表于 2021-10-26 19:04:21
import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner scan = new Scanner(System.in); while 展开全文
头像 FallenAn
发表于 2022-04-29 18:53:32
#include<stdio.h> int main(){ double a, b; char ch; while ((scanf("%lf%c%lf", &a, &ch, &b)) != EOF) { if (ch == '+' || ch == '-' 展开全文
头像 牛客549841879号
发表于 2024-04-23 11:11:59
#include <iostream> #include <bits/stdc++.h> using namespace std; int main() { double operand1 = 0, operand2 = 0; //定义操作数和运算法变 展开全文
头像 一只咖啡君
发表于 2022-12-05 10:57:55
#include <stdio.h> int main() { double num1, num2; char operator; scanf("%lf%c%lf", &num1, &operator, &num2); switc 展开全文
头像 Fawne_KIKI
发表于 2022-05-03 03:24:44
#一个不用异常解析的方法。。。 div=["+","-","*","/"]#有效的运算符列表 a=input()#获取用户输入 for x in div:#尝试用div中的四个运算符来拆用户输入 items=a.split(x) if len(items)==2:#如果拆成功了 展开全文