您的位置:首页 > 其它

读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。

2013-10-30 00:00 1076 查看
#include <stdio.h>
#include <string.h>

#define MAX 200

double stack[MAX];
int tail;

int main()
{

int a;
while (scanf("%d ",&a) && a!=0)
{
tail = 0;
//a!=0,保存在数组中
//i 始终指向数字位置
stack[++tail] = 1.0 * a;
//入栈其他剩余的数字
char symbol,space;
double num;
while (scanf("%c %lf%c",&symbol,&num,&space)!=EOF)
{
if (symbol == '+')
{
stack[++tail] = num;//1.0 * num;
}
else if (symbol == '-')
{
stack[++tail] = -1 * num;//-1.0 * num;
}
else if (symbol == '*')
{
stack[tail] = stack[tail] * num;
}
else if (symbol == '/')
{
stack[tail] = stack[tail] / num;
}

if(space != ' ')
{
break;
}

}

//统计数组中的数值的和
double count = 0;
int i;
for (i=1;i<=tail;i++)
{
count += stack[i];
}

printf("%.2lf\n",count);

}
return 1;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐