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;
}
程序我自己测试,没发现什么问�
c语言编程简易计算器代码,可编程简易计算器(代码)相关推荐
- C语言代码示范与讲解+C语言编程规范及基础语法+编程实战
上一篇文章:C语言程序设计概述+C语言简介+算法概述 C语言代码示范与讲解+C语言编程规范及基础语法+编程实战 一:代码示范集加讲解 1.C语言第一个代码:打印"This is the fi ...
- c语言交通违章编程代码,C语言程序设计之交通处罚单管理系统报告材料内含代码...
<C语言程序设计之交通处罚单管理系统报告材料内含代码>由会员分享,可在线阅读,更多相关<C语言程序设计之交通处罚单管理系统报告材料内含代码(34页珍藏版)>请在人人文库网上搜索 ...
- 简易的图形化编程软件Scratch
既然天涯把博文中的宝岛看成敏感的字眼,一天都没有审过.那就只好重新发一下了. 同事推荐了一个动画制作软件Scratch.上周下载后匆匆讨论了几句,还没来得及学习.今天因为总评成绩等都已经处理完了 ...
- 语言翻译成汇编语言_学习编程有没有必要从C语言和C++学起?应该怎么学?
硬件层级:这里也就是实体硬件,包括:CPU.内存.显卡等等...这些都不属于软件的范畴内. 汇编层级:在之前没有C/C++以及java之前,是汇编的年代.那么汇编语言对于我们来说,可读性是很查的,不适 ...
- python用什么软件编程1001python用什么软件编程-怎样才能写出 Pythonic 的代码 #P1001#...
L = [ i*i fori inrange(5) ] forindex, data inenumerate(L, 1):print(index, ':', data) 去除 import 语句和列表 ...
- 低代码开发平台_低代码开发平台系列:6、低代码是编程技术发展大势所趋
一.低代码是一种编程技术低代码是快速开发工具/技术的一种,属于软件开发/编程工具/技术领域,主要应用于企业软件开发领域.借助低代码工具,使用者无需编码即可实现企业软件系统常见功能的交付:少量编码扩展更 ...
- 敲代码括号技巧_理解代码块概念,养成良好编程习惯 | 亲子课堂 第 3 课
亲子课堂 关卡解析 / 英语教学 / 编程讲解 做亲子编程教育的好帮手! 每周二.四定期更新 地牢 面向真正0编程基础的孩子们,关卡被设计成迷宫的形式,引导孩子们使用编程思维解决问题. 以循序渐进的方 ...
- java防御性编程_代码防御性编程的十条技巧
1 什么是防御性编程? 顾名思义,防御性编程是一种细致.谨慎的编程方法.为了开发可靠的软件,我们要设计系统中的每个组件,以使其尽可能的"保护"自己.我们通过明确地在代码中对设想进行 ...
- c++ 哈希表_C语言精华知识:表驱动法编程实践
问:怎么每天看到这种文章? 答:只需搜索公众号"51单片机学习网"免费关注 排版:嵌入式云IOT技术圈 数据压倒一切.如果选择了正确的数据结构并把一切组织的井井有条,正确的算法就不 ...
- AI之Tool:GitHub Copilot(一款人工智能编程小助手—猜你想写的代码)的简介、安装、使用方法之详细攻略
AI之Tool:GitHub Copilot(一款人工智能编程小助手-猜你想写的代码)的简介.安装.使用方法之详细攻略 目录 Copilot人工智能工具的简介 1.GitHub Copilot的安全性 ...
最新文章
- python登录面向对象_python基础之面向对象
- Only Available on April 1st
- osfmount 命令加载虚拟光驱_OSFMount挂载虚拟磁盘工具下载
- CCF-CSP 201903-2 二十四点 Python语言 模拟栈实现
- XCode调试器LLDB
- boost的chrono模块模拟线程接口的测试程序
- leetcode 738. Monotone Increasing Digits | 738. 单调递增的数字(Java)
- python pip国内源_Python 修改pip源为国内源
- C Primer+Plus(十七)高级数据表示 编程练习(二)
- ggplot2 如何控制多个影射Legend 的顺序
- 光标是停在文本框文字的最后
- 在sae中运行web.py应用
- 深入浅出MFC - C++ 重要性质
- mysql 去重命令_MySQL 命令操作
- 2022年全新USDT支付系统源码+支持自动监控回调
- Linux 进程通信
- JRebel进行热部署时修改的mapper.xml或者mapper的注解不生效
- 关于python教学
- violate关键字
- Dell戴尔笔记本电脑G5 15 5590原装出厂Windows10系统1903恢复原厂oem系统
热门文章
- java文件用editplus乱码,EditPlus中文乱码问题
- Visual Studio 2017、2019 无法启动的解决方法
- 计算机专业拜年语,南昌理工学院计算机信息工程学院给您拜年啦!!
- 我是IT小小鸟的读后感
- 怎么查计算机网络硬件配置,怎么样查看电脑配置?5种方法查看电脑硬件配置好坏图文详解...
- open62541 (R 1.1.2)中文文档 (译文)第一篇 (1 - 5)
- 黑苹果OC引导AX201网卡教程,小新Pro13不换网卡也能上网
- Python不掉包实现矩阵分解及行列式转换,求秩等操作并使用QT可视化
- 手动实现李群SE(3)到李代数se(3)之间的对指数运算关系
- 中国土地市场网爬虫案例