c语言用while编译四则运算,求C语言的小型编译程序的源代码

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

支持四则运算和指数运算(用h符)。

数据类型为float型。

算术式最大长度可以通过修改程序中的数组长度和“I”值更该,没有具体规定,使用时要注意运算结果的溢出问题。

对错误的算术式有一定的检查功能。

程序代码如下:

#include

float sss(float d[],char e[],int I)

{int i,n;

for(i=0;i<=I;n=++i)

{if(e[i]==0)

{printf("The answer is:-->: %f\n",d[i]);i=I;}

else

{if(e[i]-e[i+1]>-5)

{switch(e[i])

{case 80: d[i+1]=d[i]+d[i+1];break;

case 81: d[i+1]=d[i]-d[i+1];break;

case 90: d[i+1]=d[i]*d[i+1];break;

case 91: d[i+1]=d[i]/d[i+1];break;

case 100: d[i+1]=pow(d[i],d[i+1]);break;

default :printf("Sorry! Some Error unknow...");break;}

for(n=i;i<=I;i++)

{d[i]=d[i+1],e[i]=e[i+1];

if(e[i]==0) i=I;}

if(n==0) i=n-1;

else i=n-2;}}}}

main()

{float d[32];

char e[32];

int i,I=31,n;

printf("\n\n");

for(i=0;i<=I;i++)

{scanf("%f%c",&d[i],&e[i]);

switch(e[i])

{case '+': e[i]=80;break;

case '-': e[i]=81;break;

case '*': e[i]=90;break;

case '/': e[i]=91;break;

case 'h': e[i]=100;break;

case '=': e[i]=0,i=I;break;

default: printf("Oper %d is Error! --->- %c -ChangeTo:one of + - * / h =\n",i+1,e[i]);}}

printf("\n");

sss(d,e,I);}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值