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

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语言编程简易计算器代码,可编程简易计算器(代码)相关推荐

  1. C语言代码示范与讲解+C语言编程规范及基础语法+编程实战

    上一篇文章:C语言程序设计概述+C语言简介+算法概述 C语言代码示范与讲解+C语言编程规范及基础语法+编程实战 一:代码示范集加讲解 1.C语言第一个代码:打印"This is the fi ...

  2. c语言交通违章编程代码,C语言程序设计之交通处罚单管理系统报告材料内含代码...

    <C语言程序设计之交通处罚单管理系统报告材料内含代码>由会员分享,可在线阅读,更多相关<C语言程序设计之交通处罚单管理系统报告材料内含代码(34页珍藏版)>请在人人文库网上搜索 ...

  3. 简易的图形化编程软件Scratch

     既然天涯把博文中的宝岛看成敏感的字眼,一天都没有审过.那就只好重新发一下了. 同事推荐了一个动画制作软件Scratch.上周下载后匆匆讨论了几句,还没来得及学习.今天因为总评成绩等都已经处理完了 ...

  4. 语言翻译成汇编语言_学习编程有没有必要从C语言和C++学起?应该怎么学?

    硬件层级:这里也就是实体硬件,包括:CPU.内存.显卡等等...这些都不属于软件的范畴内. 汇编层级:在之前没有C/C++以及java之前,是汇编的年代.那么汇编语言对于我们来说,可读性是很查的,不适 ...

  5. python用什么软件编程1001python用什么软件编程-怎样才能写出 Pythonic 的代码 #P1001#...

    L = [ i*i fori inrange(5) ] forindex, data inenumerate(L, 1):print(index, ':', data) 去除 import 语句和列表 ...

  6. 低代码开发平台_低代码开发平台系列:6、低代码是编程技术发展大势所趋

    一.低代码是一种编程技术低代码是快速开发工具/技术的一种,属于软件开发/编程工具/技术领域,主要应用于企业软件开发领域.借助低代码工具,使用者无需编码即可实现企业软件系统常见功能的交付:少量编码扩展更 ...

  7. 敲代码括号技巧_理解代码块概念,养成良好编程习惯 | 亲子课堂 第 3 课

    亲子课堂 关卡解析 / 英语教学 / 编程讲解 做亲子编程教育的好帮手! 每周二.四定期更新 地牢 面向真正0编程基础的孩子们,关卡被设计成迷宫的形式,引导孩子们使用编程思维解决问题. 以循序渐进的方 ...

  8. java防御性编程_代码防御性编程的十条技巧

    1 什么是防御性编程? 顾名思义,防御性编程是一种细致.谨慎的编程方法.为了开发可靠的软件,我们要设计系统中的每个组件,以使其尽可能的"保护"自己.我们通过明确地在代码中对设想进行 ...

  9. c++ 哈希表_C语言精华知识:表驱动法编程实践

    问:怎么每天看到这种文章? 答:只需搜索公众号"51单片机学习网"免费关注 排版:嵌入式云IOT技术圈 数据压倒一切.如果选择了正确的数据结构并把一切组织的井井有条,正确的算法就不 ...

  10. AI之Tool:GitHub Copilot(一款人工智能编程小助手—猜你想写的代码)的简介、安装、使用方法之详细攻略

    AI之Tool:GitHub Copilot(一款人工智能编程小助手-猜你想写的代码)的简介.安装.使用方法之详细攻略 目录 Copilot人工智能工具的简介 1.GitHub Copilot的安全性 ...

最新文章

  1. python登录面向对象_python基础之面向对象
  2. Only Available on April 1st
  3. osfmount 命令加载虚拟光驱_OSFMount挂载虚拟磁盘工具下载
  4. CCF-CSP 201903-2 二十四点 Python语言 模拟栈实现
  5. XCode调试器LLDB
  6. boost的chrono模块模拟线程接口的测试程序
  7. leetcode 738. Monotone Increasing Digits | 738. 单调递增的数字(Java)
  8. python pip国内源_Python 修改pip源为国内源
  9. C Primer+Plus(十七)高级数据表示 编程练习(二)
  10. ggplot2 如何控制多个影射Legend 的顺序
  11. 光标是停在文本框文字的最后
  12. 在sae中运行web.py应用
  13. 深入浅出MFC - C++ 重要性质
  14. mysql 去重命令_MySQL 命令操作
  15. 2022年全新USDT支付系统源码+支持自动监控回调
  16. Linux 进程通信
  17. JRebel进行热部署时修改的mapper.xml或者mapper的注解不生效
  18. 关于python教学
  19. violate关键字
  20. Dell戴尔笔记本电脑G5 15 5590原装出厂Windows10系统1903恢复原厂oem系统

热门文章

  1. java文件用editplus乱码,EditPlus中文乱码问题
  2. Visual Studio 2017、2019 无法启动的解决方法
  3. 计算机专业拜年语,南昌理工学院计算机信息工程学院给您拜年啦!!
  4. 我是IT小小鸟的读后感
  5. 怎么查计算机网络硬件配置,怎么样查看电脑配置?5种方法查看电脑硬件配置好坏图文详解...
  6. open62541 (R 1.1.2)中文文档 (译文)第一篇 (1 - 5)
  7. 黑苹果OC引导AX201网卡教程,小新Pro13不换网卡也能上网
  8. Python不掉包实现矩阵分解及行列式转换,求秩等操作并使用QT可视化
  9. 手动实现李群SE(3)到李代数se(3)之间的对指数运算关系
  10. 中国土地市场网爬虫案例