首页 > 编程语言 >C++实现计算器(菜鸡版*2)

C++实现计算器(菜鸡版*2)

时间:2024-08-18 16:27:44浏览次数:15  
标签:cout int 计算器 C++ else 菜鸡版 long ans

我写了两种,都是支持小数的(默认从左到右,请自行解括号)

别喷我这个很菜,还要用户自己解括号。大部分计算器不都这样吗(包括Windows自带的),而且我还编了一个可以直观的看到公式的。

话虽如此,但我还是会努力编出更好用的计算器的

喜欢就收藏一下吧

第一种:数字/运算符一个一个输入

代码:

#include<bits/stdc++.h>
using namespace std;
long double n,a,ans;
char s;
int main(){
	cout<<"这个算式有几个运算符?(四则运算(默认从左到右,请自行解括号))"<<endl;
	cin>>n;
	cout<<"输入第一个数:";
	cin>>ans; 
	for(int i=0;i<n;i++){
		cout<<"输入运算符:";
		cin>>s;
		cout<<"输入后一个数:";
		cin>>a;
		if(s=='+'){
			ans+=a;
		}
		else if(s=='-'){
			ans-=a;
		}
		else if(s=='*'){
			ans*=a;
		}
		else if(s=='/'){
			ans/=a;
		}
	}
	cout<<"答案是:"<<ans;
	return 0; 
} 

第二种:可输入完整公式

代码:

#include<bits/stdc++.h>
using namespace std;
long double a[100000000],ans;
long long n;
char s[100000000];
int main(){
	cout<<"公式中有几个运算符?"<<endl;
	cin>>n; 
	cout<<"输入公式:(四则运算(默认从左到右,请自行解括号)(数和符号之间要加空格))"<<endl;
	for(int i=0;i<n;i++){
		cin>>a[i]>>s[i+1];
	}
	cin>>a[n]; 
	ans=a[0];
	for(int i=1;i<=n;i++){
		if(s[i]=='+'){
			ans+=a[i];
		}
		else if(s[i]=='-'){
			ans-=a[i];
		}
		else if(s[i]=='*'){
			ans*=a[i];
		}
		else if(s[i]=='/'){
			ans/=a[i];
		}
	}
	cout<<"答案是:"<<ans;
	return 0; 
} 

标签:cout,int,计算器,C++,else,菜鸡版,long,ans
From: https://blog.csdn.net/yang_54qq/article/details/141271145

相关文章

  • C++判断素数模板
    首先是朴素方法代码:#include<bits/stdc++.h>usingnamespacestd;intnum;boolcheck(intnum){if(num<2){returnfalse;}for(inti=2;i<=sqrt(num);i++){if(num%i==0){returnfalse;}}returntr......
  • C++(>>)
    目录1.位移操作符(BitwiseRightShiftOperator)2.输入流操作符(StreamExtractionOperator)3.在OpenCV中的重载操作符4.在类中的重载操作符总结在C++中,>>是一个多功能的操作符,根据上下文的不同可以有不同的含义和用途。下面详细介绍其在各种场景中的用法。1.位移操作......
  • C++(cv::VideoCapture::open())
    在OpenCV中,cv::VideoCapture类用于从视频文件或摄像头捕获视频流。cap.open()是cv::VideoCapture类的一个成员函数,用于打开视频源。以下是关于cap.open()的详细介绍:函数定义cv::VideoCapture::open有两个主要的重载形式:boolopen(intindex)这个重载版本用于打开一......
  • 【C++二分查找】1954. 收集足够苹果的最小花园周长
    本文涉及的基础知识点C++二分查找LeetCode1954.收集足够苹果的最小花园周长给你一个用无限二维网格表示的花园,每一个整数坐标处都有一棵苹果树。整数坐标(i,j)处的苹果树有|i|+|j|个苹果。你将会买下正中心坐标是(0,0)的一块正方形土地,且每条边都与两条坐......
  • C++可控制线程
    大家好,本人是C++新人qing。我学习编程也快十年了,这一年来我用C++写了一些程序,有了一些新奇的想法。我写了一些诸如“C语言存储变长字符串”、“C++可控制线程对象”、“TCP通信接收任意长度字符串”的代码。这些都是我的拙作,希望能够分享给大家,主要是新人可以练练手,有意见也......
  • 鼠标键盘控制c++
     感觉鼠标控制挺好玩的 要想完成鼠标的一系列控制,首先你需要一个头文件:#include<windows.h> 以下是鼠标单击左键的代码,可以做成子程序(我是背下来的):mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);//按下左键Sleep(10);//要给一些应用反应时间mouse_event(MOUSEEVENTF_L......
  • 【全网独家】OpenCV C++ 图像处理实战 :多二维码识别(代码+测试部署)
    介绍在现代社会,二维码无处不在,从支付、物流到用户身份验证,二维码的应用极其广泛。本文将详细介绍如何使用OpenCV在C++环境下实现多二维码识别。我们将涵盖其应用场景、原理解释、算法流程图以及实际代码实现。应用使用场景仓储物流管理:快速扫描多个包裹上的二维码,实现高......
  • c++ builder哪个版本更好用
    1、当前,功能相对完全和成熟的是XE7。2、如果开发传统的程序,C++BUILDER2006最成熟轻量。二、可以难说哪个更好用,每个版本都有它自个的特点,典型的版的本个人理解供你参考:1、C++BUILDER4.0是BCB(C++BUILDER的简称)的第一个win下的版本,后继还有个小升级到C++BUILDER4.5,如果你想在......
  • C++入门篇一
    C++入门篇一一.缺省参数1.缺省参数的概念2.缺省参数分类二.函数重载1.函数重载概念2.函数重载代码举例三.引用1.引用的概念2.引用特性3.常引用4.使用场景(1).做参数(2).做返回值5.传值、传引用效率比较6.引用和指针的区别7.引用和指针的不同点一.缺省......
  • [C++ Error] f0201.cpp(11): E2379 Statement missing ;
    错误解释:这个错误表明在C++源代码文件f0201.cpp的第11行出现了一个语法错误,具体是缺少了一个分号;。C++语言规定语句的结束需要使用分号;,如果一个语句缺少了它,编译器就会抛出这样的错误。解决方法:打开f0201.cpp文件``,定位到第11行。检查那一行的代码,确保每个语句后面都有分号;......