列表

详情


NC21944. 简单计算器

描述

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!

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C(clang11) 解法, 执行用时: 2ms, 内存消耗: 376K, 提交时间: 2021-04-01 11:25:37

#include<stdio.h>
int main()
{
double a,b;
char m;
while(scanf("%lf%c%lf",&a,&m,&b)!=EOF)
{
if(m=='+')
printf("%.4lf+%.4lf=%.4lf\n",a,b,a+b);
else if(m=='-')
printf("%.4lf-%.4lf=%.4lf\n",a,b,a-b);
else if(m=='*')
printf("%.4lf*%.4lf=%.4lf\n",a,b,a*b);
else if(m=='/')
{
if(b==0.0)
printf("Wrong!Division by zero!\n");
else
printf("%.4lf/%.4lf=%.4lf\n",a,b,a/b);
}
else
printf("Invalid operation!\n");
}
}

C++11(clang++ 3.9) 解法, 执行用时: 4ms, 内存消耗: 488K, 提交时间: 2018-12-25 20:03:05

#include<stdio.h>
int main(){
	double a,b,c;
	char ch;
	while(~scanf("%lf%c%lf",&a,&ch,&b)){
		if(ch=='/'&&b==0.0)printf("Wrong!Division by zero!\n");
		else if(ch!='+'&&ch!='-'&&ch!='*'&&ch!='/')printf("Invalid operation!\n");
		else{
			if(ch=='+')c=a+b;
			else if(ch=='-')c=a-b;
			else if(ch=='*')c=a*b;
			else c=a/b;
			printf("%.4f%c%.4f=%.4f\n",a,ch,b,c);
		}
	}
	return 0;
}

上一题