c语言可循环计算器代码,可编程简易计算器(代码)

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

while(sign[0]!='a'){

//if(input[index]){

for(int i=0;i<4;i++)

{

if(firsttime ==1)i=3;

//提取第i+1个数字

dexto=1;

char num_str[INPUT_LEN]={'+'};

while(input[index])

{

if(isdigit(input[index]))

num_str[dexto++]=input[index++];

else

if((input[index]=='+'||input[index]=='-')&&dexto==1)

num_str[dexto-1]=input[index++];

else if(dexto>1)break;

else index++;

}

if(input[index]=='.')

if(isdigit(input[index+1]))

{

num_str[dexto++]=input[index++];

while(input[index])

if(isdigit(input[index]))num_str[dexto++]=input[index++];

else break;

}

num[i]=atof(num_str);

if(input[index]=='\0')

{

for(;i<4;i++)sign[i]='a';

break;

}

//提取第i+1个符号

while(input[index])

{

switch(input[index])

{

case'+':case'-':case'*':case'/':case'%':case'^':

sign[i]=input[index++];

goto outofwhile;

break;

default:

index++;

continue;

}

}

outofwhile:;

}//提取数字符号结束

firsttime =1;

//}//判断结束结束

//将数字进行计算

if(sign[0]=='+'||sign[0]=='-')

{//如果s0是加减则:

if(sign[1]=='+'||sign[1]=='-'||sign[1]=='a')

{

//如果s0,s1都一级

num[0]=singlecalculate(num[0],sign[0],num[1]);

num[1]=num[2];

num[2]=num[3];

sign[0]=sign[1];

sign[1]=sign[2];

sign[2]=sign[3];

}

else

{

if(sign[1]=='^')

{

//如果s0一级s1是^则

num[1]=singlecalculate(num[1],sign[1],num[2]);

num[2]=num[3];

sign[1]=sign[2];

sign[2]=sign[3];

}else if(sign[2]=='^')

{

//如果s2是^且s1为二级

num[2]=singlecalculate(num[2],sign[2],num[3]);

sign[2]=sign[3];

}else

{

//如果s2为二级或1级则

num[1]=singlecalculate(num[1],sign[1],num[2]);

num[2]=num[3];

sign[1]=sign[2];

sign[2]=sign[3];

}

}

}else

{

//如果s0不是加法则

if(sign[1]=='^'&&sign[0]!='^')

{

//如果s1是^则

num[1]=singlecalculate(num[1],sign[1],num[2]);

num[2]=num[3];

sign[1]=sign[2];

sign[2]=sign[3];

}else

{

//如果s0是二级或以上s1是二级或以下则:

num[0]=singlecalculate(num[0],sign[0],num[1]);

num[1]=num[2];

num[2]=num[3];

sign[0]=sign[1];

sign[1]=sign[2];

sign[2]=sign[3];

}

}

//num[0]=singlecalculate(num[0],sign[0],num[1]);

/*printf("1:%lf\n",num[0]);

printf("2:%lf\n",num[1]);

printf("3:%lf\n",num[2]);

printf("4:%lf\n",num[3]);

printf("s1:%c\n",sign[0]);

printf("s2:%c\n",sign[1]);

printf("s3:%c\n",sign[2]);

printf("s4:%c\n",sign[3]);*/

}//大循环结束

return num[0];

}

double singlecalculate(double num1,char sign,double num2)

{

switch(sign)

{

case'+':

num1+=num2;

break;

case'-':

num1-=num2;

break;

case'*':

num1*=num2;

break;

case'/':

num2==0?printf("式子包含有除数为0,请检查\a"):num1/=num2;

break;

case'%':

num2==0?printf("式子包含有除数为0,请检查\a"):num1=(int)num1%(int)num2;

break;

case'^':

num1=pow(num1,num2);

break;

}

return num1;

}

程序我自己测试,没发现什么问�

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/506680.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android 动态文本选取,android-用动态文本更新UI

我会使用处理程序.private static final int WHAT 1;private static final int TIME_TO_WAIT 5000;Handler regularHandler new Handler(new Handler.Callback() {public boolean handleMessage(Message msg) {// Do stuffregularHandler.sendEmptyMessageDelayed(msg.what,…

京东广告联盟android,京东APP联盟SDKAndroid版接口说明文档1.0.PDF

京东APP联盟SDKAndroid版接口说明文档1.0京东APP 联盟SDK Android 版接口说明文档1.01. 嵌入SDK1.1 添加SDKAndroid Studio 环境&#xff1a;菜单New->New Module->Import .jar or .aar package&#xff0c;然后选中App联盟SDK 所带的jar 文件。EclipseADT 环境: 将App 联…

android 环绕布局,Android自定义View实现圆形环绕效果

之前项目中需要实现一个四周环绕中心圆形头像的效果&#xff0c;感觉还是自定义比较方便&#xff0c;于是就自己封装了一个控件去实现。先贴张图显示最终效果。首先自定义一个View继承自LinearLayout,通过动态添加childView的方式将子控件添加到View中。思路是先添加中间圆形头…

android tasker,Tasker:Android系统增强神器

权限信息 net.dinglisch.android.tasker.PERMISSION_RUN_TASKS net.dinglisch.android.tasker.PERMISSION_AUTO_IMPORT com.joaomgcd.taskersettings.SET_SETTING net.dinglisch.android.zoom.permission.MAKE_CHANGES android.permission.PACKAGE_USAGE_STATS cyanogenmod.per…

android 高德地图 sh1,百度、高德地图获取发布版(Release)SHA1

一、简介&#xff1a;在百度、高德地图开发中&#xff0c;申请key的时候&#xff0c;要两个版本的sha1值。一个是开发版(debug)&#xff0c;一个是发布版(release)。debug版本的sha1比较好获取&#xff0c;网上资料一堆&#xff0c;这里引用一下&#xff0c;就不再重复写了。最…

signature=adf15bd90b83b628c647a1aa64741773,Thoracic Oncology

摘要&#xff1a;Thymic malignancies are rare epithelial tumors that may be aggressive and difficult totreat. Thymomas are usually localized to the anterior mediastinum and are frequentlyeligible for upfront surgical resection. However, nearly 30% of patien…

html前台检验特殊字符正则,【Qt编程】html特殊字符及正则表达式

1、html特殊字符的显示我们知道html语言和C语言一样也有一些特殊字符&#xff0c;它们是不能正常显示的&#xff0c;必须经过转义&#xff0c;在网上可以查到如何显示这些字符&#xff0c;如下图所示&#xff1a;上图给了最常用的特殊字符的显示&#xff0c;下面我们来实验一下…

html 变量类型强制转换,html、js前台数据传到后台,spring复杂类型转换

html、js前台数据传到后台&#xff0c;spring复杂类型转换如果我有两个变量&#xff0c;变量名不一样&#xff0c;处理的规则也不一样&#xff0c;但是他们都是Date.class 类型&#xff0c; 这可怎么破。比如&#xff1a;InitBinderpublic void bindingPreparation(WebDataBind…

html盒模型中border的写法,HTML+css盒子模型案例(圆,半圆等)“border-radius” 简单易上手...

很多小伙伴在前端学习的时候&#xff0c;发现盒子模型默认为正方形。如何把盒子变成想要的模型呢&#xff1f; 首先我们来看一下默认的情况----.box{width: 100px;height: 100px;background-color: rgb(116, 51, 51);box-shadow:0 10px 10px red;text-align: center;position:a…

希捷银河声音大_每日观影之银河守门员( )

#银河守门员Вратарь Галактики#真心不错的科幻大片…尤其这剧情故事实在是俄国电影的一个很有突破性的亮点…基本可以说全方面凸显了俄罗斯的国情…比如高大上的部分完全不输欧美甚至有所超越领先都是要拯救世界而且还很壮烈拼搏的样子…然而百姓生活却显得很窘…

html select 修改默认箭头样式,自定义select标签箭头样式

select::-ms-expand{ display: none; }//ie样式清除select{appearance:none;-moz-appearance:none;-webkit-appearance:none;background: url("/uploadfiles/images/alliance/xiala2x.png") no-repeat scroll 480px center transparent;background-size: 20px 10px;p…

bat循环执行带参数_wxappUnpacker的bingo.bat脚本逐行解读

点击上方“蓝字”关注我们之前发过一篇文章小程序反编译工具在windows系统下的调用脚本提到了Windows平台下的脚本&#xff0c;但是对脚本没有做详细说明。本文就是针对脚本做的讲解。对批处理感兴趣的可以了解下。不会基础也没关系。下面我们进入正题。脚本解读第1行&#xff…

把HTML代码上传到gitee,使用git上传项目到gitee以及VS使用git管理项目

在打开的GIt Bash中输入以下命令(用户和邮箱为你github注册的账号和邮箱)$ git config --global user.name "hanyuntao"$ git config --global user.email "hanyuntaocn163.com"Paste_Image.png2.4 设置SSH key(git中sshkey有何作用&#xff1f;)2.4.1 生成…

定值保险计算举例_保险公司的“开门红”又要来了!理财险真的值得买吗?

临近年末&#xff0c;各家保险公司都开始备战2020年的“开门红”。对于保险公司来说&#xff0c;“开门红全年红”&#xff0c;只要开门红的任务完成得好&#xff0c;那么今年大半年的保费就不用担心了&#xff0c;因此保险公司们对于这一战都十分重视。如果说“双11”、“双12…

html中post语句,html中post乱码的解决方法

html中post乱码的解决方法发布时间&#xff1a;2021-05-27 11:29:00来源&#xff1a;亿速云阅读&#xff1a;91作者&#xff1a;小新这篇文章主要介绍html中post乱码的解决方法&#xff0c;文中介绍的非常详细&#xff0c;具有一定的参考价值&#xff0c;感兴趣的小伙伴们一定要…

泸州田家炳中学2021高考成绩查询,2021年泸州中考线出来了吗

中考是人们升高中的必经之路&#xff0c;它虽然没有高考那样振奋人心&#xff0c;但是对于当时的人来说也算是一场最正规的考试。首先&#xff0c;不可否认的是中考是很重要的。虽然它不能对高考有着直接影响&#xff0c;但是却有着间接影响。在每年的六份左右出来。中考是很重…

django返回指定html文件,Django返回HTML文件的实现方法

前面我们简单的了解Django的一些工作原理&#xff0c;其中关于页面展示的内容&#xff0c;也全部都是视图(Views)返回的内容&#xff0c;那么我们也知道前端包括很多内容。如&#xff1a;HTML&#xff0c;CSS&#xff0c;JavaScript等以及各种插件&#xff0c;才具备完全的页面…

c++获取图像的长宽 opencv_【第一篇:C++与opencv】图片的读取和显示 | 学步园

这里介绍C版本的opencv&#xff0c;和C语言版本有些不同&#xff0c;先看代码^_^【编译环境&#xff1a;opencv2.4.4和VS2008】#include "stdafx.h"#include "opencv2/opencv.hpp"using namespace cv;using namespace std;int _tmain(int argc, _TCHAR* ar…

计算机网络纠错码,计算机网络:纠错

本文概述当数据从发送方发送到接收方时, 纠错码用于检测和纠正错误。纠错可以通过两种方式处理&#xff1a;向后纠错&#xff1a;发现错误后, 接收方会请求发送方重新传输整个数据单元。前向纠错&#xff1a;在这种情况下, 接收器使用纠错码自动纠正错误。单个附加位可以检测到…

安卓线程同步面试_Android面试题

1、java的重载和重写分别是什么含义&#xff1f;重载&#xff1a;(1) 方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在&#xff0c;具有不同的参数个数/类型。重载Overloading是一个类中多态性的一种表现。(2) java的方法重载&#xff0c;就是在类…