zoukankan      html  css  js  c++  java
  • 简单计算器 (栈)

    #include<cstdio>
    #include<algorithm>
    #include<iostream>
    #include<cstring>
    #include<stack>
    using namespace std;
    int main()
    {
        stack<double> num;
        double n,t;
        char f;
        while (cin >> n)
        {
            if (getchar() =='
    ' && n == 0) break;
            double sum=0;
            num.push(n);
            while (cin >> f >> n)
            {
                if (f == '+')
                    num.push(n);
                if (f == '-')
                    num.push(-n);
                if (f == '*')
                {
                    t = n * num.top();
                    num.pop();
                    num.push(t);
                }
                if (f == '/')
                {
                    t = num.top() / n;
                    num.pop();
                    num.push(t);
                }
                if (getchar() == '
    ') break;
            }
            while (!num.empty())
            {
                sum += num.top();
                num.pop();
            }
            printf("%.2lf
    ", sum);
        }
    }

      

    #include<cstdio>
    #include<algorithm>
    #include<iostream>
    #include<cstring>
    #include<stack>
    using namespace std;
    int main()
    {
    	double num[205], n;
    	char f;
    	while (cin >> n)
    	{
    		int sum = 0;
    		num[0] = n;
    		if (getchar() == '
    '&&n == 0)break;
    		while (1)
    		{
    			cin >> f >> n;
    			if (f == '*')num[sum] *= n;
    			else if (f == '/')num[sum] /= n;
    			else if (f == '+')num[++sum] = n;
    			else num[++sum] = -n;
    			if (getchar() == '
    ')break;
    		}
    		n = 0;
    		for (int i = 0; i <= sum; i++)
    			n += num[i];
    		printf("%.2lf
    ", n);
    	}
    	return 0;
    }
    

      

    读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。
    Input测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。
    Output对每个测试用例输出1行,即该表达式的值,精确到小数点后2位。 

    Sample Input

    1 + 2
    4 + 2 * 5 - 7 / 11
    0

    Sample Output

    3.00
    13.36
  • 相关阅读:
    python学习----8.28---单例模式,网络编程
    python学习-----8.27----异常处理,元类
    python学习--8.23
    python学习-----8.22--classmethod和staticmethod
    Python学习---8.21组合,多态,封装
    python学习----8.20面向对象---继承与派生
    Python学习----8.17--面向对象编程
    python成长之旅 一
    python java php语言之间的对比
    python成长之旅
  • 原文地址:https://www.cnblogs.com/edych/p/7207795.html
Copyright © 2011-2022 走看看