这道关于计算器C语言题我思路哪里错了,如何修正?为什么算出来不对
2个回答
展开全部
你的无优先级计算器主要是没有考虑对第一个数和最后一个数的处理
我帮你改完了,你看看吧
#include<stdio.h>
#include<string.h>
int main()
{
int i,n=0,f[41];
char a[41],c;
double d=0;
gets(a);
for(i=0;i<strlen(a);i++)
{
if('0'<=a[i]&&a[i]<='9')
{
f[n]=f[n]*10+(int)(a[i]-'0');
}else{
if(d==0){
d=f[n];
c=a[i];
}else{
switch(c)
{
case '+':d=d+f[n];break;
case '-':d=d-f[n];break;
case '*':d=d*f[n];break;
case '/':d=d/f[n];break;
}
c=a[i];
}
n++;
}
}
switch(c)
{
case '+':d=d+f[n];break;
case '-':d=d-f[n];break;
case '*':d=d*f[n];break;
case '/':d=d/f[n];break;
}
printf("%.2f\n",d);
return 0;
}
富港检测技术(东莞)有限公司_
2024-06-06 广告
2024-06-06 广告
ISTA3L是一个基于研究、数据驱动的测试协议,它模拟了由零售公司完成的产品订单被直接运送给消费者时所经历的危险,它允许用户评估包装产品的能力,以承受运输和处理包装产品时所经历的供应链危险,从接收到任何电子商务零售商履行操作,直到最终消费者...
点击进入详情页
本回答由富港检测技术(东莞)有限公司_提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询