zoukankan      html  css  js  c++  java
  • hdoj--1237--简单计算器(栈模拟)

    简单计算器

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 15927    Accepted Submission(s): 5447



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

    Input
    测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。
     

    Output
    对每个测试用例输出1行,即该表达式的值,精确到小数点后2位。
     

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

    Sample Output
    3.00 13.36
     

    Source
    浙大计算机研究生复试上机考试-2006年

    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    using namespace std;
    int main()
    {
    	double num[210];
    	double b,sum;
    	char c;
    	int top;
    	while(scanf("%lf",&b))
    	{
    		c=getchar();
    		if(b==0&&c=='
    ')
    		break;
    		else
    		{
    			top=0;
    			memset(num,0,sizeof(num));
    			num[top++]=b;
    		}
    		while(true)
    		{
    			scanf("%c %lf",&c,&b);
    			if(c=='*')
    			num[top-1]*=b;
    			else if(c=='/')
    			num[top-1]/=b;
    			else if(c=='+')
    			num[top++]+=b;
    			else if(c=='-')
    			num[top++]-=b;
    			if(getchar()=='
    ')
    			break;
    		}
    		sum=0;
    		for(int i=0;i<top;i++)
    		sum+=num[i];
    		printf("%.2lf
    ",sum);
    	}
    	return 0;
    }


     
  • 相关阅读:
    MSSQL中with(nolock)的用法
    google reader 使用快捷键
    HTML中em标签的用法
    js正则表达式
    C#中lock关键字的用法
    面试反思
    关于IE6.7.8.FF兼容的问题
    C#中DateTime.Now.Ticks的用法和说明
    JS中eval的用法
    这两天面试时不会的笔试题
  • 原文地址:https://www.cnblogs.com/playboy307/p/5273597.html
Copyright © 2011-2022 走看看